Skip to content

oracle/oci-designer-toolkit

Oracle Cloud Infrastructure Designer and Visualisation Toolkit 0.59.0

OCI designer and visualisation toolKIT (OKIT) is a browser based tool that allows the user to design, deploy and visualise (introspect/query) OCI environments through a graphical web based interface.

  • Design

    The Web based interface will allow architects and designers to build a visual representation of their infrastructure and then export this in a number of formats.

    • svg
    • png
    • jpeg
  • Export

    Once completed the design can be enhanced to add key property information allowing the designed infrastructure to be exported to a number of DevOps frameworks or Markdown for documentation.

    • Terraform
    • OCI Resource Manager
    • Markdown

    This allows for rapid proto-typing and building.

  • Introspect

    OKIT will also allow the user to introspect existing OCI environments, through simple query functionality embedded within the web interface, to provide a portable generic json file, that can be used to visualise existing systems or generate terraform/ansible.

Changes

Changes for the current release (0.59.0) are documented here.

Releases

See Releases

Blogs

Installation

Detailed OKIT Installation steps can be found in the OCI Designer Toolkit Installation Guide.

Note: For instructions on installing OKIT on an OCI Instance follow the instructions within the Installation guide.

Runtime Quick Start

Docker is the recommended runtime container for OKIT. The project contains a top-level Dockerfile to facilitate direct building, of the runtime environment, from the docker command line.

Prerequisites

Before building / running OKIT you will need to install Docker / Docker Desktop.

Build Docker Container

docker build --tag okit --no-cache --force-rm https://github.com/oracle/oci-designer-toolkit.git

Note: If you are running on Windows and see issues please follow the docker clone/build from source instructions.

Create / Generate Connection Information

If you already have the OCI sdk/cli installed on you machine you can use the previously generated pem key and config file we will assume that this exists in <USER HOME DIR>/.oci

Key File

If you do not have a previously generated private key you will need to create a private/public key pair for use with OKIT and OCI. These keys can be generated using the following commands as defined in Required Keys and OCIDs.

openssl genrsa -out <USER HOME DIR>/.oci/oci_api_key.pem 2048   
openssl rsa -pubout -in <USER HOME DIR>/.oci/oci_api_key.pem -out <USER HOME DIR>/.oci/oci_api_key_public.pem                                  

Upload the generated oci_api_key_public.pem to OCI through the console and record the associated fingerprint following upload.

Get Fingerprint
openssl rsa -pubout -outform DER -in ~/.oci/oci_api_key.pem | openssl md5 -c
OCI Config File

Create the OCI cli config file in the directory <USER HOME DIR>/.oci with contents similar to that below. The key_file is a fixed value because the contents of the <USER HOME DIR>/.oci will be mounted to the appropriate users home directory, as ~/.oci, during the run process.

[DEFAULT]
user=ocid1.user.oc1..aaaaaaaak6z......
fingerprint=3b:7e:37:ec:a0:86:1....
key_file=~/.oci/oci_api_key.pem  
tenancy=ocid1.tenancy.oc1..aaaaaaaawpqblfem........
region=us-phoenix-1
GIT Settings File

If Git integration is required you will need to create a git_repositories file within the directory <USER HOME DIR>/.oci with contents similar to that below.

[OKIT Community Templates]
branch=main
url[email protected]:username/okit-community-templates.git
  
[Example Repo]
branch = master
url = [email protected]

[Internal]
branch = BRANCHNAME
url = [email protected]

This properties file contains a list of the Git repositories you want to access. It assumes that you are using public/private key access, the key files exist within your <USER HOME DIR>/.ssh directory and the <USER HOME DIR>/.ssh/config defines the key/url mapping, similar to the following.

Host github.com
	IdentityFile ~/.ssh/id_rsa_github

Run Container

Simple
docker run -d --rm -p 80:80 --volume <USER HOME DIR>/.oci:/root/.oci --volume <USER HOME DIR>/.ssh:/root/.ssh --name okit okit
Mount User Templates and Git Directories
docker run -d --rm -p 80:80 --volume <USER HOME DIR>/.oci:/root/.oci --volume <USER HOME DIR>/.ssh:/root/.ssh --volume <PATH TO USER TEMPLATES DIR>:/okit/instance/templates/user --volume <PATH TO GIT DIR>:/okit/instance/git --volume <PATH TO LOCAL DIR>:/okit/instance/local --name okit okit

Note: Occasionally Docker Container may have clock drift and this can cause authentication issues this can be resolved by executing.

docker run --rm --privileged okit hwclock -s

Once started the Designer BUI can be accessed on http://localhost/okit/designer

Usage / Examples

The OKIT User / Usage Guide and worked examples can be found in the OCI Designer Toolkit Usage Guide

Changes

See CHANGELOG.

Known Issues

You can find information on any known issues with OKIT here and under the Issues tab of this project's GitHub repository. Any issues found with the tool should be raised on the projects issues page. Please check that the issue has not previously been reported.

Contributing

This project welcomes contributions from the community. Before submitting a pull request, please review our contribution guide

Security

Please consult the security guide for our responsible security vulnerability disclosure process

License

Copyright (c) 2020, 2023 Oracle and/or its affiliates.

Released under the Universal Permissive License v1.0 as shown at https://oss.oracle.com/licenses/upl/.

If you would like to extend OKIT the development documentation can be found in OCI Designer Toolkit Development Guide