OBaaS CLI
The Oracle Backend for Microservices and AI offers a command-line interface (CLI), oractl
. The CLI commands simplify the deployment of microservices applications as well as bindings with the resources that they use.Download the CLI here. The platform-specific binary can be renamed to oractl
for convenience.
Table of Contents:
- Installing the CLI
- Using the CLI
- Command Concepts
- Workflow Example
- Available Command Groups
- Logging Information
Oracle Backend for Microservices and AI CLI is used to configure your backend and to deploy your Spring Boot applications to the backend.
-
Download the Oracle Backend for Microservices and AI CLI
oractl
Download the CLI from here
-
Rename the downloaded file to
oractl
-
Add
oractl
to PATH variableYou need to make sure it is executable and add it to your PATH environment variable.
<copy> chmod +x oractl export PATH=/path/to/oractl:$PATH</copy>
NOTE: If environment is a Mac you need run the following command sudo xattr -r -d com.apple.quarantine <downloaded-file>
otherwise will you get a security warning and the CLI will not work.
-
Expose the Oracle Backend for Microservices and AI Admin server that the CLI calls using this command:
kubectl port-forward services/obaas-admin -n obaas-admin 8080
-
Start the CLI in interactive mode by running oractl from your terminal window. For example:
oractl
As a result, the
oractl
prompt is displayed as follows:_ _ __ _ ___ / \ |_) _. _. (_ / | | \_/ |_) (_| (_| __) \_ |_ _|_ ======================================================================================== Application Name: Oracle Backend Platform :: Command Line Interface Application Version: (1.4.0) :: Spring Boot (v3.5.4) :: Ask for help: - Slack: https://oracledevs.slack.com/archives/C06L9CDGR6Z - email: obaas_ww@oracle.com oractl:>
The following describes the different resources handled by the client:
-
Artifacts - An artifact, for example a JAR file, that can be used to run a workload. Artifacts are built into images.
-
Autoscaler - adjust pod replicas in response to workload demands.
-
Binding - A binding associates a datastore with a workload.
-
Configuration - A configuration property which can be injected into a workload. Identified by name, label and profile.
-
Datastore - A data store, for example a pluggable database or a schema/user in a database instance, which can be used by a workload. Can be shared by multiple workloads, although this is only recommended for truly shared resources like queues/topics used for asynchronous communications between microservices. In most normal cases, a datastore should only be associated with one workload, in keeping with the “database per service” pattern.
-
Identity - APIs related to identity (users, roles, etc.) are collected in this group.
-
Image - A container image which can be used to run an workload. Built from an artifact and a base image.
-
Namespace - A Kubernetes namespace in which workloads can be deployed.
-
Telemetry - APIs for managing consent (opt-in) for sending telemetry data to Oracle.
-
Workload - A Spring Boot application which can be deployed in the platform. Is associated with an artifact and an image, which have their own separate lifecycles.
Following is a workflow example deploying the Spring services that makeup the CloudBank backend.
Create the namespace for the CloudBank application
namespace create --namespace application
Create the datastore for the Account and Customer microservices
datastore create --namespace application --username account --id account
datastore create --namespace application --username customer --id customer
Upload the Spring microservice jars
artifact create --namespace application --workload account --imageVersion 0.0.1 --file /Users/devusr/microservices-datadriven/cloudbank-v4/account/target/account-0.0.1-SNAPSHOT.jar
artifact create --namespace application --workload checks --imageVersion 0.0.1 --file /Users/devusr/microservices-datadriven/cloudbank-v4/checks/target/checks-0.0.1-SNAPSHOT.jar
artifact create --namespace application --workload customer --imageVersion 0.0.1 --file /Users/devusr/microservices-datadriven/cloudbank-v4/customer/target/customer-0.0.1-SNAPSHOT.jar
artifact create --namespace application --workload creditscore --imageVersion 0.0.1 --file /Users/devusr/microservices-datadriven/cloudbank-v4/creditscore/target/creditscore-0.0.1-SNAPSHOT.jar
artifact create --namespace application --workload transfer --imageVersion 0.0.1 --file /Users/devusr/microservices-datadriven/cloudbank-v4/transfer/target/transfer-0.0.1-SNAPSHOT.jar
Create images from the artifacts
image create --namespace application --workload account --imageVersion 0.0.1
image create --namespace application --workload checks --imageVersion 0.0.1
image create --namespace application --workload customer --imageVersion 0.0.1
image create --namespace application --workload creditscore --imageVersion 0.0.1
image create --namespace application --workload transfer --imageVersion 0.0.1
Create a workload for the images
workload create --namespace application --imageVersion 0.0.1 --id account --liquibaseDB admin --cpuRequest 100m --framework SPRING_BOOT
workload create --namespace application --imageVersion 0.0.1 --id checks --cpuRequest 100m
workload create --namespace application --imageVersion 0.0.1 --id customer --liquibaseDB admin --cpuRequest 100m --framework SPRING_BOOT
workload create --namespace application --imageVersion 0.0.1 --id creditscore --cpuRequest 100m --framework SPRING_BOOT
workload create --namespace application --imageVersion 0.0.1 --id transfer --cpuRequest 100m --framework SPRING_BOOT
Create a binding between the workload and the datastore
binding create --namespace application --datastore account --workload account --framework SPRING_BOOT
binding create --namespace application --datastore customer --workload customer --framework SPRING_BOOT
binding create --namespace application --datastore account --workload checks --framework SPRING_BOOT
Verify success
serverversion
namespace list
datastore list --namespace application
artifact list
image list
binding list --namespace application
workload list --namespace application
Short descriptions for the available commands can be viewed by issuing the help
command and detailed help for any individual
commands can be viewed by issuing help [command-name]
. For example:
oractl:>help
AVAILABLE COMMANDS
Artifact
artifact list: Lists the artifacts in your platform.
artifact create: Creates a new artifact in your platform.
artifact delete: Delete an artifact in your platform.
artifact deleteByWorkload: Delete an artifact in your platform by workload.
Binding
binding list: Lists bindings for a given namespace.
binding update: Update a specific binding for a given namespace.
binding delete: Delete a specific binding for a given namespace.
binding create: Create a binding in a given namespace.
binding get: Get a specific binding for a given namespace.
Built-In Commands
help: Display help about available commands
stacktrace: Display the full stacktrace of the last error.
clear: Clear the shell screen.
quit, exit: Exit the shell.
history: Display or save the history of previously run commands
version: Show version info
script: Read and execute commands from a file.
Configuration
configuration delete: Delete a specific configuration key.
configuration create: Create a configuration.
configuration get: Get a specific configuration by name.
configuration update: Update a configuration.
configuration list: Lists all configuration.
Datastore
datastore list: Lists datastores for a given namespace.
datastore update: Update a specific datastore for a given namespace.
datastore create: Create a datastore in a given namespace.
datastore delete: Delete a specific datastore for a given namespace.
datastore get: Get a specific datastore for a given namespace.
Identity
user list: Lists all the users in your platform.
user create: Creates a new user in your platform.
user get: get a user on your platform.
user delete: Delete a user in your platform.
user change-roles: Change the roles from the specified user.
user change-password: Change password for the specified user.
Image
image get: Get a specific image on your platform.
image list: Lists all the images in your platform.
image create: Creates a new image in your platform.
image delete: Delete an image in your platform.
image deleteByWorkload: Delete an image in your platform by workload.
Initialization
connect: Connect to the OBaaS Admin Service.
Namespace
namespace create: Creates a new namespace in your platform.
namespace delete: Delete a namespace in your platform.
namespace update: Update the namespace secrets.
namespace list: Lists the namespaces in your platform.
Server Version
serverversion: Get obaas admin server version.
Telemetry
telemetry-consent update: Update the platforms telemetry consent.
telemetry-consent list: Lists the platforms telemetry consent status.
telemetry-consent create: Create a telemetry consent record.
Workload
autoscaler delete: Delete an autoscaler for a specific workload in a given namespace.
workload create: Create a workload in a given namespace.
workload delete: Delete a specific workload for a given namespace.
workload update: Update a specific workload for a given namespace.
autoscaler create: Create an autoscaler for a specific workload in a given namespace.
workload getImage: Get the image for a specific workload in a given namespace.
workload list: Lists workloads for a given namespace.
workload get: Get a specific workload for a given namespace.
autoscaler list: Lists autoscalers for a given workload in a given namespace.
autoscaler update: Update an autoscaler for a specific workload in a given namespace.
Ask for Help
Slack: https://oracledevs.slack.com/archives/C03ALDSV272
E-mail: obaas_ww@oracle.com
The following is a description of the CLI commands:
Use the connect
command to connect your oractl
CLI to the Oracle Backend Administration service:
oractl:>help connect
NAME
connect - Connect to the OBaaS Spring Cloud admin console.
SYNOPSIS
connect --url String --help
OPTIONS
--url String
admin server URL
[Optional, default = http://localhost:8080]
--help or -h
help for connect
[Optional]
Ask for Help
Slack: https://oracledevs.slack.com/archives/C03ALDSV272
E-mail: obaas_ww@oracle.com
For example:
oractl:>connect
? username obaas-admin
? password ****************
obaas-admin -> Welcome!
An artifact, for example a JAR file, that can be used to run a workload. Artifacts are built into images.
oractl:>help artifact create
NAME
artifact create - Creates a new artifact in your platform.
SYNOPSIS
artifact create [--namespace String] [--workload String] [--imageVersion String] --nativeImage boolean --path String [--file String] --help
OPTIONS
--namespace String
The namespace the artifact will be created in.
[Mandatory]
--workload String
The workload name for the artifact.
[Mandatory]
--imageVersion String
The version of the artifact.
[Mandatory]
--nativeImage boolean
Whether to create a native artifact.
[Optional, default = false]
--path String
Artifact Path.
[Optional]
--file String
Jar file used for Artifact Creation.
[Mandatory]
--help or -h
help for artifact create
[Optional]
For example:
oractl:>artifact create --namespace myapp --workload account --imageVersion 1.0.0 --file /Users/devuser/account.jar
obaas-cli [artifact create]: Artifact [account:1.0.0] was successfully created.
oractl:>help artifact list
NAME
artifact list - Lists the artifacts in your platform.
SYNOPSIS
artifact list --help
OPTIONS
--help or -h
help for artifact list
[Optional]
For example:
oractl:>artifact list
╔══╤═════════╤════════╤════════╤══════╤══════════════════════════════════════════════════════╗
║ID│Namespace│Workload│Artifact│Native│Path ║
║ │ │ │Version │Image │ ║
╠══╪═════════╪════════╪════════╪══════╪══════════════════════════════════════════════════════╣
║6 │myapp │account │1.0.0 │false │/app/upload-dir/myapp/account/target/account-1.0.0.jar║
╚══╧═════════╧════════╧════════╧══════╧══════════════════════════════════════════════════════╝
oractl:>help artifact delete
NAME
artifact delete - Delete an artifact in your platform.
SYNOPSIS
artifact delete [--artifactId String] --help
OPTIONS
--artifactId String
The ID of the artifact you want to delete.
[Mandatory]
--help or -h
help for artifact delete
[Optional]
For example:
oractl:>artifact delete --artifactId 6
obaas-cli [artifact delete]: Artifact [6] was successfully deleted.
oractl:>help artifact deleteByWorkload
NAME
artifact deleteByWorkload - Delete an artifact in your platform by workload.
SYNOPSIS
artifact deleteByWorkload [--namespace String] [--workload String] [--artifactVersion String] --help
OPTIONS
--namespace String
The namespace the artifact will be deleted in.
[Mandatory]
--workload String
The workload name for the artifact.
[Mandatory]
--artifactVersion String
The version of the artifact.
[Mandatory]
--help or -h
help for artifact deleteByWorkload
[Optional]
For example:
oractl:>artifact deleteByWorkload --namespace myapp --workload account --artifactVersion 1.0.0
obaas-cli [artifact delete]: Artifact [account:1.0.0] was successfully deleted.
adjust pod replicas in response to workload demands
oractl:>help autoscaler create
NAME
autoscaler create - Create an autoscaler for a specific workload in a given namespace.
SYNOPSIS
autoscaler create [--namespace String] [--workloadID String] [--minimumReplicas Integer] [--maximumReplicas Integer] [--cpuPercent Integer] --help
OPTIONS
--namespace String
The namespace to create the workload in.
[Mandatory]
--workloadID String
The id of the workload.
[Mandatory]
--minimumReplicas Integer
Minimum replicas for workload.
[Mandatory]
--maximumReplicas Integer
Maximum Replicas for workload.
[Mandatory]
--cpuPercent Integer
Indicates the average CPU utilization threshold that triggers scaling of pods.
[Mandatory]
--help or -h
help for autoscaler create
[Optional]
For example:
oractl:>autoscaler create --namespace myapp --workloadID account --minimumReplicas 1 --maximumReplicas 5 --cpuPercent 65
obaas-cli [autoscaler create]: Autoscaler [account] was successfully created.
oractl:>help autoscaler list
NAME
autoscaler list - Lists autoscalers for a given workload in a given namespace.
SYNOPSIS
autoscaler list [--namespace String] [--workloadID String] --help
OPTIONS
--namespace String
The namespace to query workloads from.
[Mandatory]
--workloadID String
The id of the workload.
[Mandatory]
--help or -h
help for autoscaler list
[Optional]
For example:
oractl:>autoscaler list --namespace myapp --workloadID accounts
╔═══════════╤═══════════╤══════════╗
║Minimum │Maximum │CPUPercent║
║Replicas │Replicas │ ║
╠═══════════╪═══════════╪══════════╣
║1 │5 │65 ║
╚═══════════╧═══════════╧══════════╝
oractl:>help autoscaler update
NAME
autoscaler update - Update an autoscaler for a specific workload in a given namespace.
SYNOPSIS
autoscaler update [--namespace String] [--workloadID String] [--minimumReplicas Integer] [--maximumReplicas Integer] [--cpuPercent Integer] --help
OPTIONS
--namespace String
The namespace to create the workload in.
[Mandatory]
--workloadID String
The id of the workload.
[Mandatory]
--minimumReplicas Integer
Minimum replicas for workload.
[Mandatory]
--maximumReplicas Integer
Maximum Replicas for workload.
[Mandatory]
--cpuPercent Integer
Indicates the average CPU utilization threshold that triggers scaling of pods.
[Mandatory]
--help or -h
help for autoscaler update
[Optional]
For example:
oractl:>autoscaler update --namespace myapp --workloadID account --minimumReplicas 2 --maximumReplicas 3 --cpuPercent 75
obaas-cli [autoscaler update]: Autoscaler [account] was successfully updated.
oractl:>help autoscaler delete
NAME
autoscaler delete - Delete an autoscaler for a specific workload in a given namespace.
SYNOPSIS
autoscaler delete [--namespace String] [--workloadID String] --help
OPTIONS
--namespace String
The namespace of the workload.
[Mandatory]
--workloadID String
The workload id that has the autoscaler to be deleted.
[Mandatory]
--help or -h
help for autoscaler delete
[Optional]
For example:
oractl:>autoscaler delete --namespace myapp --workloadID accounts
obaas-cli [autoscaler delete]: Autoscaler [accounts] was successfully deleted.
A binding associates a datastore with a workload.
oractl:>help binding create
NAME
binding create - Create a binding in a given namespace.
SYNOPSIS
binding create [--namespace String] [--workload String] [--datastore String] [--framework String]--help
OPTIONS
--namespace String
The namespace to create the binding in.
[Mandatory]
--workload String
The workload id.
[Mandatory]
--datastore String
The datastore id.
[Mandatory]
--framework String
The workload framework. Must be SPRING_BOOT or HELIDON
[Mandatory]
--help or -h
help for binding create
[Optional]
For example:
oractl:>binding create --namespace myapp --workload accounts --datastore mydatastore --framework SPRING_BOOT
obaas-cli [binding create]: Binding [accounts] was successfully created.
oractl:>help binding list
NAME
binding list - Lists bindings for a given namespace.
SYNOPSIS
binding list [--namespace String] --help
OPTIONS
--namespace String
The namespace to query bindings from.
[Mandatory]
--help or -h
help for binding list
[Optional]
For example:
oractl:>binding list --namespace myapp
╔════════════════╤═════════╤═══════════╗
║Workload │Datastore│Framework ║
╠════════════════╪═════════╪═══════════╣
║account │account │SPRING_BOOT║
╟────────────────┼─────────┼───────────╢
║checks │account │SPRING_BOOT║
╟────────────────┼─────────┼───────────╢
║customer │customer │SPRING_BOOT║
╟────────────────┼─────────┼───────────╢
║testrunner │account │SPRING_BOOT║
╟────────────────┼─────────┼───────────╢
║customer-helidon│customer │HELIDON. ║
╚════════════════╧═════════╧═══════════╝
oractl:>help binding get
NAME
binding get - Get a specific binding for a given namespace.
SYNOPSIS
binding get [--namespace String] [--workload String] --help
OPTIONS
--namespace String
The namespace to query the binding from.
[Mandatory]
--workload String
The workload id.
[Mandatory]
--help or -h
help for binding get
[Optional]
For example:
oractl:>binding get --namespace myapp --workload account
╔════════╤═════════╤═══════════╗
║Workload│Datastore│Framework ║
╠════════╪═════════╪═══════════╣
║account │account │SPRING_BOOT║
╚════════╧═════════╧═══════════╝
oractl:>help binding update
NAME
binding update - Update a specific binding for a given namespace.
SYNOPSIS
binding update [--namespace String] [--workload String] [--datastore String] [--framework String] --help
OPTIONS
--namespace String
The namespace to update the datastore in.
[Mandatory]
--workload String
The workload id.
[Mandatory]
--datastore String
The datastore id.
[Mandatory]
--framework String
The workload framework. Must be SPRING_BOOT or HELIDON
[Mandatory]
--help or -h
help for binding update
[Optional]
For example:
oractl:>binding update --namespace myapp --workload account --datastore newdatastore --framework SPRING_BOOT
obaas-cli [binding update]: Binding [account] was successfully updated.
oractl:>help binding delete
NAME
binding delete - Delete a specific binding for a given namespace.
SYNOPSIS
binding delete [--namespace String] [--workload String] --help
OPTIONS
--namespace String
The namespace to delete the binding in.
[Mandatory]
--workload String
The workload id.
[Mandatory]
--help or -h
help for binding delete
[Optional]
For example:
oractl:>binding delete --namespace myapp --workload account
obaas-cli [binding delete]: Binding [account] was successfully deleted.
A configuration property which can be injected into a workload. Identified by name, label and profile.
oractl:>help configuration create
NAME
configuration create - Create a configuration.
SYNOPSIS
configuration create [--name String] [--profile String] [--label String] [--key String] [--value String] --help
OPTIONS
--name String
The name of the configuration.
[Mandatory]
--profile String
The configuration profile.
[Mandatory]
--label String
The configuration label.
[Mandatory]
--key String
The configuration key.
[Mandatory]
--value String
The configuration value.
[Mandatory]
--help or -h
help for configuration create
[Optional]
For example:
oractl:>configuration create --name accountconfig --profile development --label 23beta --key debuglogging --value debug
obaas-cli [configuration create]: Configuration [accountconfig] was successfully created.
oractl:>help configuration list
NAME
configuration list - Lists all configuration.
SYNOPSIS
configuration list --help
OPTIONS
--help or -h
help for configuration list
[Optional]
For example:
oractl:>configuration list
╔═════════════╗
║Name ║
╠═════════════╣
║accountconfig║
╟─────────────╢
║application-a║
╚═════════════╝
oractl:>help configuration get
NAME
configuration get - Get a specific configuration by name.
SYNOPSIS
configuration get [--name String] --help
OPTIONS
--name String
The name of the configuration.
[Mandatory]
--help or -h
help for configuration get
[Optional]
For example:
oractl:>configuration get --name accountconfig
╔═════════════╤═══════════╤══════╤════════════╤═════╗
║Name │Profile │Label │Key │Value║
╠═════════════╪═══════════╪══════╪════════════╪═════╣
║accountconfig│development│23beta│debuglogging│debug║
╚═════════════╧═══════════╧══════╧════════════╧═════╝
oractl:>help configuration update
NAME
configuration update - Update a configuration.
SYNOPSIS
configuration update [--name String] [--profile String] [--label String] [--key String] [--value String] --help
OPTIONS
--name String
The name of the configuration.
[Mandatory]
--profile String
The configuration profile.
[Mandatory]
--label String
The configuration label.
[Mandatory]
--key String
The configuration key.
[Mandatory]
--value String
The configuration value.
[Mandatory]
--help or -h
help for configuration update
[Optional]
For example:
oractl:>configuration update --name accountconfig --profile development --label 23beta --key debuglogging --value info
obaas-cli [configuration update]: Configuration [accountconfig] was successfully updated.
oractl:>help configuration delete
NAME
configuration delete - Delete a specific configuration key.
SYNOPSIS
configuration delete [--name String] [--profile String] [--label String] [--key String] [--value String] --help
OPTIONS
--name String
The name of the configuration.
[Mandatory]
--profile String
The configuration profile.
[Mandatory]
--label String
The configuration label.
[Mandatory]
--key String
The configuration key.
[Mandatory]
--value String
The configuration value.
[Mandatory]
--help or -h
help for configuration delete
[Optional]
For example:
oractl:>configuration delete --name accountconfig --profile development --label 23beta --key debuglogging --value info
obaas-cli [configuration delete]: Configuration [accountconfig] was successfully deleted.
A data store, for example a pluggable database or a schema/user in a database instance, which can be used by a workload. Can be shared by multiple workloads, although this is only recommended for truly shared resources like queues/topics used for asynchronous communications between microservices. In most normal cases, a datastore should only be associated with one workload, in keeping with the “database per service” pattern.
oractl:>help datastore create
NAME
datastore create - Create a datastore in a given namespace.
SYNOPSIS
datastore create [--namespace String] [--username String] [--id String] --help
OPTIONS
--namespace String
The namespace to create the datastore in.
[Mandatory]
--username String
The datastore username.
[Mandatory]
--id String
The datastore id.
[Mandatory]
--help or -h
help for datastore create
[Optional]
For example:
oractl:>datastore create --namespace myapp --username account --id account
? password ************
obaas-cli [datastore create]: Datastore [account] was successfully created.
oractl:>help datastore list
NAME
datastore list - Lists datastores for a given namespace.
SYNOPSIS
datastore list [--namespace String] --help
OPTIONS
--namespace String
The namespace to query datastores from.
[Mandatory]
--help or -h
help for datastore list
[Optional]
For example:
oractl:>datastore list --namespace myapp
╔════════════╤════════╗
║Datastore ID│Username║
╠════════════╪════════╣
║account │account ║
╟────────────┼────────╢
║mydatastore │dbuser ║
╚════════════╧════════╝
oractl:>help datastore get
NAME
datastore get - Get a specific datastore for a given namespace.
SYNOPSIS
datastore get [--namespace String] [--id String] --help
OPTIONS
--namespace String
The namespace to query the datastore from.
[Mandatory]
--id String
The datastore id.
[Mandatory]
--help or -h
help for datastore get
[Optional]
For example:
oractl:>datastore get --namespace myapp --id account
╔════════════╤════════╗
║Datastore ID│Username║
╠════════════╪════════╣
║account │account ║
╚════════════╧════════╝
oractl:>help datastore update
NAME
datastore update - Update a specific datastore for a given namespace.
SYNOPSIS
datastore update [--namespace String] [--id String] --help
OPTIONS
--namespace String
The namespace to update the datastore in.
[Mandatory]
--id String
The datastore id.
[Mandatory]
--help or -h
help for datastore update
[Optional]
For example:
oractl:>datastore update --namespace myapp --id account
? password *************
obaas-cli [datastore update]: Datastore [account] was successfully updated.
oractl:>help datastore delete
NAME
datastore delete - Delete a specific datastore for a given namespace.
SYNOPSIS
datastore delete [--namespace String] [--id String] --help
OPTIONS
--namespace String
The namespace to delete the datastore from.
[Mandatory]
--id String
The datastore id.
[Mandatory]
--help or -h
help for datastore delete
[Optional]
For example:
oractl:>datastore delete --namespace myapp --id account
obaas-cli [datastore delete]: Datastore [account] was successfully deleted.
APIs related to identity (users, roles, etc.) are collected in this group.
oractl:>help user create
NAME
user create - Creates a new user in your platform.
SYNOPSIS
user create [--username String] --roles String --help
OPTIONS
--username String
The name you assign to the user during creation. This is the user's login for the CLI. The name must be unique across all users in the platform and cannot be changed.
[Mandatory]
--roles String
The user's role within the platform. A user must have up to three possible roles provided in a comma-separated list. [ROLE_ADMIN,ROLE_CONFIG_EDITOR,ROLE_USER,ROLE_SOC_USER].
[Optional, default = ROLE_USER]
--help or -h
help for user create
[Optional]
For example:
oractl:>user create --username devuser --roles ROLE_CONFIG_EDITOR,ROLE_USER
? password ************
obaas-cli [user create]: User [devuser] was successfully created.
oractl:>help user list
NAME
user list - Lists all the users in your platform.
SYNOPSIS
user list --help
OPTIONS
--help or -h
help for user list
[Optional]
For example:
oractl:>user list
╔════════════╤═════════════════════════════════════════════════════╗
║Username │Roles ║
╠════════════╪═════════════════════════════════════════════════════╣
║devuser │ROLE_CONFIG_EDITOR,ROLE_USER ║
╟────────────┼─────────────────────────────────────────────────────╢
║obaas-user │ROLE_USER ║
╟────────────┼─────────────────────────────────────────────────────╢
║obaas-admin │ROLE_ADMIN,ROLE_CONFIG_EDITOR,ROLE_USER,ROLE_SOC_USER║
╟────────────┼─────────────────────────────────────────────────────╢
║obaas-config│ROLE_CONFIG_EDITOR,ROLE_USER ║
╚════════════╧═════════════════════════════════════════════════════╝
oractl:>help user get
NAME
user get - get a user on your platform.
SYNOPSIS
user get [--username String] --help
OPTIONS
--username String
The username you want to retrieve.
[Mandatory]
--help or -h
help for user get
[Optional]
For example:
oractl:>user get --username devuser
╔════════╤════════════════════════════╗
║Username│Roles ║
╠════════╪════════════════════════════╣
║devuser │ROLE_CONFIG_EDITOR,ROLE_USER║
╚════════╧════════════════════════════╝
oractl:>help user change-password
NAME
user change-password - Change password for the specified user.
SYNOPSIS
user change-password [--username String] --help
OPTIONS
--username String
The username you want to change the password.
[Mandatory]
--help or -h
help for user change-password
[Optional]
For example:
oractl:>user change-password --username devuser
? password **************
obaas-cli [user update]: User [devuser] was successfully updated.
oractl:>help user change-roles
NAME
user change-roles - Change the roles from the specified user.
SYNOPSIS
user change-roles [--username String] --roles String --help
OPTIONS
--username String
The name you assign to the user during creation. This is the user's login for the CLI.
[Mandatory]
--roles String
The user's role within the platform. A user must have up to three possible roles provided in a comma-separated list. [ROLE_ADMIN,ROLE_CONFIG_EDITOR,ROLE_USER].
[Optional, default = ROLE_USER]
--help or -h
help for user change-roles
[Optional]
For example:
oractl:>user change-roles --username devuser --roles ROLE_USER
obaas-cli [user update]: User [devuser] was successfully updated.
oractl:>help user delete
NAME
user delete - Delete a user in your platform.
SYNOPSIS
user delete [--username String] --help
OPTIONS
--username String
The username you want to delete.
[Mandatory]
--help or -h
help for user delete
[Optional]
For example:
oractl:>user delete --username devuser
obaas-cli [user delete]: User [devuser] was successfully deleted.
A container image which can be used to run an workload. Built from an artifact and a base image. The default base image is ghcr.io/oracle/openjdk-image-obaas:21
oractl:>help image create
NAME
image create - Creates a new image in your platform.
SYNOPSIS
image create [--namespace String] [--workload String] [--imageVersion String] --baseImage String --nativeImage Boolean --help
OPTIONS
--namespace String
The namespace for the image.
[Mandatory]
--workload String
The workload name of the artifact for image creation.
[Mandatory]
--imageVersion String
The version of the artifact for image creation.
[Mandatory]
--baseImage String
The java version used for image creation.
[Optional, default = ghcr.io/oracle/openjdk-image-obaas:21]
--nativeImage Boolean
Whether to create a native artifact.
[Optional, default = false]
--help or -h
help for image create
[Optional]
For example:
oractl:>image create --namespace myapp --workload account --imageVersion 1.1.0
obaas-cli [image create]: Image [account:1.1.0] was successfully created.
oractl:>help image list
NAME
image list - Lists all the images in your platform.
SYNOPSIS
image list --help
OPTIONS
--help or -h
help for image list
[Optional]
For example:
oractl:>image list
╔══╤═══════════════════════════════════════════════════╤═════════════════════════════════════╤═══════════╤════════╤═════════════════════════════╤═══════╗
║ID│Name │BaseImage │Namespace │Workload│Created │Status ║
╠══╪═══════════════════════════════════════════════════╪═════════════════════════════════════╪═══════════╪════════╪═════════════════════════════╪═══════╣
║10│iad.ocir.io/maacloud/calf/application-account:0.0.1│ghcr.io/oracle/openjdk-image-obaas:21│application│account │2024-12-13T14:31:58.041+00:00│FAILED ║
╟──┼───────────────────────────────────────────────────┼─────────────────────────────────────┼───────────┼────────┼─────────────────────────────┼───────╢
║11│iad.ocir.io/maacloud/calf/myapp-account:0.0.1 │ghcr.io/oracle/openjdk-image-obaas:21│myapp │account │2024-12-13T14:32:22.436+00:00│FAILED ║
╟──┼───────────────────────────────────────────────────┼─────────────────────────────────────┼───────────┼────────┼─────────────────────────────┼───────╢
║12│iad.ocir.io/maacloud/calf/myapp-account:1.1.0 │ghcr.io/oracle/openjdk-image-obaas:21│myapp │account │2024-12-13T14:42:19.462+00:00│CREATED║
╚══╧═══════════════════════════════════════════════════╧═════════════════════════════════════╧═══════════╧════════╧═════════════════════════════╧═══════╝
oractl:>help image get
NAME
image get - Get a specific image on your platform.
SYNOPSIS
image get [--imageId String] --help
OPTIONS
--imageId String
The ID of the image you want to retrieve.
[Mandatory]
--help or -h
help for image get
[Optional]
For example:
oractl:>image get --imageId 12
╔══╤═════════════════════════════════════════════╤═════════════════════════════════════╤═════════╤════════╤═════════════════════════════╤═══════╗
║ID│Name │BaseImage │Namespace│Workload│Created │Status ║
╠══╪═════════════════════════════════════════════╪═════════════════════════════════════╪═════════╪════════╪═════════════════════════════╪═══════╣
║12│iad.ocir.io/maacloud/calf/myapp-account:1.1.0│ghcr.io/oracle/openjdk-image-obaas:21│myapp │account │2024-12-13T14:42:19.462+00:00│CREATED║
╚══╧═════════════════════════════════════════════╧═════════════════════════════════════╧═════════╧════════╧═════════════════════════════╧═══════╝
oractl:>help image delete
NAME
image delete - Delete an image in your platform.
SYNOPSIS
image delete [--imageId String] --help
OPTIONS
--imageId String
The ID of the image you want to delete.
[Mandatory]
--help or -h
help for image delete
[Optional]
For example:
oractl:>image delete --imageId 10
obaas-cli [image delete]: Image [10] was successfully deleted.
NOTE: When using this command the
workload
must still exist. If not you’ll get an error. The solution is to delete the workload using the id.
The error message is similar to this:
obaas-cli [image delete]: error: deployments.apps "account" not found Http Return Code = 404
oractl:>help image deleteByWorkload
NAME
image deleteByWorkload - Delete an image in your platform by workload.
SYNOPSIS
image deleteByWorkload [--namespace String] [--workload String] --help
OPTIONS
--namespace String
The namespace the image will be deleted in.
[Mandatory]
--workload String
The workload name for the image.
[Mandatory]
--help or -h
help for image deleteByWorkload
[Optional]
For example:
oractl:>image deleteByWorkload --namespace myapp --workload account
obaas-cli [image delete]: Image [account] was successfully deleted.
A Kubernetes namespace in which workloads can be deployed.
oractl:>help namespace create
NAME
namespace create - Creates a new namespace in your platform.
SYNOPSIS
namespace create [--namespace String] --help
OPTIONS
--namespace String
The name for the new namespace in your platform.
[Mandatory]
--help or -h
help for namespace create
[Optional]
For example:
oractl:>namespace create --namespace application
obaas-cli [namespace create]: Namespace [application] was successfully created.
oractl:>help namespace list
NAME
namespace list - Lists the namespaces in your platform.
SYNOPSIS
namespace list --help
OPTIONS
--help or -h
help for namespace list
[Optional]
For example:
oractl:>namespace list
╔═══════════╗
║Namespace ║
╠═══════════╣
║application║
╟───────────╢
║myapp ║
╚═══════════╝
oractl:>help namespace update
NAME
namespace update - Update the namespace secrets.
SYNOPSIS
namespace update [--namespace String] --help
OPTIONS
--namespace String
The namespace you want to update.
[Mandatory]
--help or -h
help for namespace update
[Optional]
For example:
oractl:>namespace update --namespace application
obaas-cli [namespace update]: Namespace [application] was successfully updated.
oractl:>help namespace delete
NAME
namespace delete - Delete a namespace in your platform.
SYNOPSIS
namespace delete [--namespace String] --help
OPTIONS
--namespace String
The namespace you want to delete.
[Mandatory]
--help or -h
help for namespace delete
[Optional]
For example
oractl:>namespace delete --namespace application
obaas-cli [namespace delete]: Namespace [application] was successfully deleted.
APIs for managing consent (opt-in) for sending telemetry data to Oracle.
oractl:>help telemetry-consent create
NAME
telemetry-consent create - Create a telemetry consent record.
SYNOPSIS
telemetry-consent create --consented boolean --help
OPTIONS
--consented boolean
The value of the telemetry consent.
[Optional, default = false]
--help or -h
help for telemetry-consent create
[Optional]
For example:
oractl:>telemetry-consent create --consented true
obaas-cli [telemetry-consent create]: Telemetry-consent [true] was successfully created.
oractl:>help telemetry-consent list
NAME
telemetry-consent list - Lists the platforms telemetry consent status.
SYNOPSIS
telemetry-consent list --help
OPTIONS
--help or -h
help for telemetry-consent list
[Optional]
For example:
oractl:>telemetry-consent list
╔═════════╤═════════════════════════════╗
║Consented│Timestamp ║
╠═════════╪═════════════════════════════╣
║true │2024-12-16T17:32:07.038+00:00║
╚═════════╧═════════════════════════════╝
oractl:>help telemetry-consent update
NAME
telemetry-consent update - Update the platforms telemetry consent.
SYNOPSIS
telemetry-consent update --consented boolean --help
OPTIONS
--consented boolean
The value of the telemetry consent.
[Optional, default = false]
--help or -h
help for telemetry-consent update
[Optional]
For example:
oractl:>telemetry-consent update --consented false
obaas-cli [telemetry-consent update]: Telemetry-consent [false] was successfully updated.
A Spring Boot application which can be deployed in the platform. Is associated with an artifact and an image, which have their own separate lifecycles.
oractl:>help workload create
NAME
workload create - Create a workload in a given namespace.
SYNOPSIS
workload create [--namespace String] [--id String] --profile String [--imageVersion String] --cpuRequest String --port int --addHealthProbe boolean --liquibaseDB String --initialReplicas int --help --framework
OPTIONS
--namespace String
The namespace to create the workload in.
[Mandatory]
--id String
The id of the workload.
[Mandatory]
--profile String
The workload profile.
[Optional, default = obaas]
--imageVersion String
The workload image version.
[Mandatory]
--cpuRequest String
The workload cpu request.
[Optional, default = 500m]
--port int
Port workload listens on.
[Optional, default = 8080]
--addHealthProbe boolean
The workload cpu request.
[Optional, default = false]
--liquibaseDB String
The workload liquibase database.
[Optional]
--initialReplicas int
Initial workload replicas.
[Optional, default = 1]
--framework String
The workload framework. Must be SPRING_BOOT or HELIDON
[Mandatory]
--help or -h
help for workload create
[Optional]
For example:
oractl:>workload create --namespace myapp --imageVersion 1.1.0 --id account
obaas-cli [workload create]: Workload [account] was successfully created.
oractl:>help workload list
NAME
workload list - Lists workloads for a given namespace.
SYNOPSIS
workload list [--namespace String] --help
OPTIONS
--namespace String
The namespace to query workloads from.
[Mandatory]
--help or -h
help for workload list
[Optional]
For example:
oractl:>workload list --namespace myapp
╔═══════════╤════════╤═══════╤══════════╤════╤══════════════╤═══════════════╤═══════════╤═══════════╗
║Workload ID│Workload│Profile│CPURequest│Port│addHealthProbe│initialReplicas│liquibaseDB│Framework ║
║ │Version │ │ │ │ │ │ │ ║
╠═══════════╪════════╪═══════╪══════════╪════╪══════════════╪═══════════════╪═══════════╪═══════════╣
║account │0.0.1 │obaas │100m │8080│false │1 │admin │SPRING_BOOT║
╟───────────┼────────┼───────┼──────────┼────┼──────────────┼───────────────┼───────────┼───────────╢
║checks │0.0.1 │obaas │100m │8080│false │1 │ │SPRING_BOOT║
╟───────────┼────────┼───────┼──────────┼────┼──────────────┼───────────────┼───────────┼───────────╢
║creditscore│0.0.1 │obaas │100m │8080│false │1 │ │SPRING_BOOT║
╟───────────┼────────┼───────┼──────────┼────┼──────────────┼───────────────┼───────────┼───────────╢
║customer │0.0.1 │obaas │100m │8080│false │1 │admin │SPRING_BOOT║
╟───────────┼────────┼───────┼──────────┼────┼──────────────┼───────────────┼───────────┼───────────╢
║testrunner │0.0.1 │obaas │100m │8080│false │1 │ │SPRING_BOOT║
╟───────────┼────────┼───────┼──────────┼────┼──────────────┼───────────────┼───────────┼───────────╢
║transfer │0.0.1 │obaas │100m │8080│false │1 │ │SPRING_BOOT║
╚═══════════╧════════╧═══════╧══════════╧════╧══════════════╧═══════════════╧═══════════╧═══════════╝
oractl:>help workload get
NAME
workload get - Get a specific workload for a given namespace.
SYNOPSIS
workload get [--namespace String] [--id String] --help
OPTIONS
--namespace String
The namespace to query the workload from.
[Mandatory]
--id String
The workload id.
[Mandatory]
--help or -h
help for workload get
[Optional]
For example:
oractl:>workload get --namespace myapp --id account
╔════════╤════════╤═══════╤══════════╤════╤══════════════╤═══════════════╤═══════════╤═══════════╗
║Workload│Workload│Profile│CPURequest│Port│addHealthProbe│initialReplicas│liquibaseDB│Framework ║
║ID │Version │ │ │ │ │ │ │ ║
╠════════╪════════╪═══════╪══════════╪════╪══════════════╪═══════════════╪═══════════╪═══════════╣
║account │0.0.1 │obaas │100m │8080│false │1 │admin │SPRING_BOOT║
╚════════╧════════╧═══════╧══════════╧════╧══════════════╧═══════════════╧═══════════╧═══════════╝
oractl:>help workload update
NAME
workload update - Update a specific workload for a given namespace.
SYNOPSIS
workload update [--namespace String] [--id String] --profile String [--imageVersion String] --cpuRequest String --port Integer --addHealthProbe Boolean --liquibaseDB String --initialReplicas Integer --help
OPTIONS
--namespace String
The namespace to create the workload in.
[Mandatory]
--id String
The id of the workload.
[Mandatory]
--profile String
The workload profile.
[Optional]
--imageVersion String
The workload image version.
[Mandatory]
--cpuRequest String
The workload cpu request.
[Optional]
--port Integer
Port workload listens on.
[Optional]
--addHealthProbe Boolean
The workload cpu request.
[Optional]
--liquibaseDB String
The workload liquibase database.
[Optional]
--initialReplicas Integer
Initial workload replicas.
[Optional]
--framework String
The workload framework. Must be SPRING_BOOT or HELIDON
[Mandatory]
--help or -h
help for workload update
[Optional]
For example:
oractl:>workload update --namespace myapp --id account --imageVersion 1.1.0 --addHealthProbe true --framework SPRING_BOOT
obaas-cli [workload update]: Workload [account] was successfully updated.
oractl:>help workload getImage
NAME
workload getImage - Get the image for a specific workload in a given namespace.
SYNOPSIS
workload getImage [--namespace String] [--id String] --help
OPTIONS
--namespace String
The namespace to query the workload from.
[Mandatory]
--id String
The workload id.
[Mandatory]
--help or -h
help for workload getImage
[Optional]
For example:
oractl:>workload getImage --namespace myapp --id account
╔═════╤══════════════════════════════════════════════╤═════════════════════════════════════╤════════╤═════════╤═════════════════════════════╤═══════╗
║Image│Image Name │Base Image │Workload│Namespace│Created │Status ║
║ID │ │ │ │ │ │ ║
╠═════╪══════════════════════════════════════════════╪═════════════════════════════════════╪════════╪═════════╪═════════════════════════════╪═══════╣
║14 │iad.ocir.io/maacloud/calf/myapp-account:1.1.0 │ghcr.io/oracle/openjdk-image-obaas:21│account │myapp │2024-12-13T16:07:40.529+00:00│CREATED║
╚═════╧══════════════════════════════════════════════╧═════════════════════════════════════╧════════╧═════════╧═════════════════════════════╧═══════╝
oractl:>help workload delete
NAME
workload delete - Delete a specific workload for a given namespace.
SYNOPSIS
workload delete [--namespace String] [--id String] --help
OPTIONS
--namespace String
The namespace to delete the workload from.
[Mandatory]
--id String
The workload id.
[Mandatory]
--help or -h
help for workload delete
[Optional]
For example:
oractl:>workload delete --namespace myapp --id account
obaas-cli [workload delete]: Workload [account] was successfully deleted.
oractl:>help serverversion
NAME
serverversion - Get obaas admin server version.
SYNOPSIS
serverversion --help
OPTIONS
--help or -h
help for serverversion
[Optional]
For example:
oractl:>serverversion
╔═══════╗
║Version║
╠═══════╣
║1.4.0 ║
╚═══════╝
The log file for oractl
on Mac or Unix machine is stored in the $HOME/config/oractl
directory. The file name is oractl-cli-history.log