CLI alignment
Description
During the last few versions (since 0.3.5), Memphis CLI has not been aligned with the latest features and management abilities as the SDK. Memphis CLI should be able to perform every management action as can be done via the GUI and/or the SDKs.
Hey, I would like to give it a try :) I assume the feature list can be found in the release notes(?)
Hey @abrl91 :) That's a significant "good first issue" and a contribution, also should be fun to do :) We do keep well-formed release notes, but I am not sure if it will help us with that task. Either way, I think we should start by listing all the possible functionalities in Memphis, tag which is required for the CLI or can be performed via the CLI, and then head to the code. What do you think?
Hey @abrl91 :) That's a significant "good first issue" and a contribution, also should be fun to do :) We do keep well-formed release notes, but I am not sure if it will help us with that task. Either way, I think we should start by listing all the possible functionalities in Memphis, tag which is required for the CLI or can be performed via the CLI, and then head to the code. What do you think?
Sounds great. But how do I know what features are involved and can be performed via the CLI?
@abrl91 I suggest we start with a list of all the features and then map them together. For example -
- Create/Modify station
- Create/Modify tags
- Create/Modify users
- Installation (via terraform side script)
and so forth
@yanivbh1 cool. I'll do it
@abrl91 Great, thank you! We can use this thread
I'll start working on it tomorrow evening
@yanivbh1 I'm not sure about this list...I also didn't find something related to installation via terraform. I also noticed that there are some bugfixes related to the user input and I wasn't sure if I needed to list them.
Can you review it please?
-
Create/Modify station
- add remove & update dlstream for old&new stations #571
- Idempotency support for stations #493
- delete station + idempo OW schema station list #513
- Add redundant station removal to "kill zombie resources" loop #379
- Allow '.' in station names (swap '.' internally with '#' for station names) #383
- create station unify the components #401
- add RemoveSchemaFromStation + GetUpdatesForSchema #405
- Remove schema from station #430
- Create station schema #417
- add get all stations endpoint #342
-
Create/Modify tags
-
Create/Modify users
-
Installation (via terraform side script)
@abrl91, perfect. I am on it. I will review ASAP.
@abrl91
The following CLI functionanllity should be exist or need to be created Root = First CLI level.
Root: Connect Functionallity already exist
Root: Station
- Create (Options: name, replicas, idempotency window, attach schema, dead-letter station, 1st retention policy, storage type)
- Modify (DLS)
- Delete
- DLS (List message based on type / Resend based on message type / Drop by msg id)
- List all stations
- List producers of specific station
- List consumers of specific station
Root: User Functionallity is aligned
Root: Cluster
- Update
- Info
Root: Installation In case Memphis does not installed. There should be the following menu:
- Kubernetes (The CLI will make sure 'kubectl' installed + target the correct cluster and deploy)
- Docker compose (The CLI will make sure 'docker engine' is installed and running and run installation command)
- Cloud deployment (The CLI will initiate a terraform installation script that will be exposed here
Hey @yanivbh1 Sorry for the late response, I had a busy week. I'll start working on this issue today or tomorrow. Just to be sure - where can I find the source code? In this repo or in the CLI repo?
Hey @abrl91, sorry it took me some time to answer. Everything is great, and every help is truly amazing. As the CLI is a standalone component, Memphis CLI repo can be found here https://github.com/memphisdev/memphis-cli
looks like dead beef what's the status?
Expired tofu...
Hey @g41797 and @abrl91 , Love the used terms :) Currently not prioritized. Once back to the table, it will be updated here.