oracle / oci-designer-toolkit

OCI designer toolKIT (OKIT) is a set of tools for enabling design, deploy and visualise OCI environments through a graphical web based interface.
Universal Permissive License v1.0
264 stars 129 forks source link
oci oci-ansible oci-cli oci-designer oci-terraform-modules oci-toolkit okit visualise-oci-environments

License: UPL Quality Gate Status

Oracle Cloud Infrastructure Designer and Visualisation Toolkit 0.65.0

Full Release Details Can Found 0.65.0 Release.

OKIT - Open Cloud Designer Public Beta is now Available see 0.65.0 Release for details.


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.

Changes

Changes for the current release (0.65.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=git@github.com:username/okit-community-templates.git

[Example Repo]
branch = master
url = git@url1.git

[Internal]
branch = BRANCHNAME
url = git@url2.git

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, 2024, 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