Skip to content

Commit

Permalink
Merge pull request #25 from oracle/toxophilist/sprint-4
Browse files Browse the repository at this point in the history
Toxophilist/sprint 4
  • Loading branch information
toxophilist authored Jun 3, 2020
2 parents 902cc42 + 20397d2 commit 8876c88
Show file tree
Hide file tree
Showing 137 changed files with 2,870 additions and 1,442 deletions.
14 changes: 5 additions & 9 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,21 +19,17 @@ build/

okit.wpr

**/OCI_Icons_SVG.zip
converter/source
converter/OCI_Icons_SVG
converter/dist
converter/dest

output
output/
log/

.scannerwork
#/.scannerwork/
#sonar-project.properties

.vagrant

config
config/

containers/.oci
containers/oci
**/*.pem

30 changes: 30 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,34 @@
# Release Notes


## Version 0.6.0
**Release Date**: 3rd June 2020
### Features
1. Optional generation of variable file for Ansible and Terraform, defaults:
1. Terraform : True
2. Ansible : True
2. Resource Manager no longer uses variable file for anything other than connection information.
3. Switch to new Oracle Icons as defined in https://docs.cloud.oracle.com/en-us/iaas/Content/API/Concepts/sdkconfig.htm.
4. Add Config Profile selection to the Query Popup so we can specify alternative tenancy information.
5. Add Profile / Region / Compartment selection to the Resource Manager export rather than using DEFAULT profile values.
6. Add Plan / Apply toggle to Resource Manager export.
7. Move DRG to VCN Parent rather than Compartment
8. Check for Update
9. Highlight selected artefact (Toggles on/off).

### Bug Fixes
1. Palette did not scroll
2. Link to OCI Console should be data driven #20
3. 100 variable limit with Resource Manager causes upload failure (Issue #09)
4. Add Tenancy root to selectable list of compartments (Issue: #21)
5. Generation of terraform with regional subnet throws error for missing availability domain. (Issue: #22).
6. Missing logs (default log location now /okit/log/okit.log in container).
7. Export to Resource Manager:
1. Error message modified so that it does not always say the compartment does not exist when failing (OKIT-67).
2. Compartment Name is not checked for uniqueness (OKIT-5).
3. Error planning job with no Tags (OKIT-45).


## Version 0.5.1
**Release Date**: 18th May 2020
### Features
Expand All @@ -10,6 +39,7 @@
### Bug Fixes



## Version 0.5.0
**Release Date**: 13th May 2020
### Features
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# OCI Designer Toolkit [0.5.1](CHANGELOG.md#version-0.5.1)
# OCI Designer Toolkit [0.6.0](CHANGELOG.md#version-0.6.0)

OCI designer toolKIT (OKIT) is a set of tools for enabling design, deploy and visualise OCI environments
through a graphical web based interface.
Expand Down
2 changes: 1 addition & 1 deletion containers/docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
FROM oraclelinux:7-slim
LABEL "provider"="Oracle" \
"issues"="https://github.com/oracle/oci-designer-toolkit/issues" \
"version"="0.5.1" \
"version"="0.6.0" \
"description"="OKIT Web Server Container." \
"copyright"="Copyright (c) 2020, Oracle and/or its affiliates."
SHELL ["/bin/bash", "-c"]
Expand Down
8 changes: 8 additions & 0 deletions containers/oci/config
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
### Example OCI Connection Config File
### All values must be changed to match you connection information.
[DEFAULT]
user=<OCID For User>
fingerprint=<Key File Fingerprint>
key_file=~/.oci/<Key File>.pem
tenancy=<OCID for Tenancy>
region=<Preferred Region>
4 changes: 4 additions & 0 deletions documentation/ArtefactSupport.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ The table below lists a summary of the current support status whilst the details
| Object Storage Bucket | Partial | 0.1.0 | [3](#object-storage-bucket)
| **Database**
| Autonomous Database | Partial | 0.1.0 | [2](#autonomous-database)
| Database Systems | Partial | 0.6.0 | [2](#database-systems)
| **Compute**
| Instance | Partial | 0.3.0 | [3](#instance)
| Load Balancer | Partial | 0.3.0 | [2](#loadbalancer)
Expand Down Expand Up @@ -58,6 +59,9 @@ The table below lists a summary of the current support status whilst the details
##### Autonomous Database
- Cloning (Includes all cloning functionality / Referencing)
- BYOL
##### Database Systems
- Backup Configuration
- Maintenance Window

#### Compute
##### Instance
Expand Down
15 changes: 7 additions & 8 deletions documentation/Installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,21 +18,20 @@ python modules are installed and in addition provide a simple flask server that
3. [Build Vagrant Image](#build-vagrant-image)


## Clone / Download Repository
Before the building either the Docker or Vagrant Images the project will need to be cloned or downloaded from the Git
Repository. The latest stable version number if shown in the README and the associated Release tag is in the format
vX.Y.Z hence for the version 0.5.1 the Release tag will be **v0.5.1**. The command shows how this can be cloned to the
local machine.
### Clone
## Clone Repository
Before the building either the Docker or Vagrant Images the project will nee to be cloned from the Git Repository (or downloaded)
and it is recommended that the latest Stable Release be cloned. The latest stable version number if shown in the README
and the associated Release tag is in the format vX.Y.Z hence for the version 0.6.0 the Release tag will be
**v0.6.0**. The command shows how this can be cloned to the local machine.

```bash
git clone -b v0.5.1 --depth 1 git@github.com:oracle/oci-designer-toolkit.git
git clone -b v0.6.0 --depth 1 git@github.com:oracle/oci-designer-toolkit.git
```

or

```bash
git clone -b v0.5.1 --depth 1 https://github.com/oracle/oci-designer-toolkit.git
git clone -b v0.6.0 --depth 1 https://github.com/oracle/oci-designer-toolkit.git
```

### Download
Expand Down
89 changes: 51 additions & 38 deletions documentation/Usage.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,28 +100,30 @@ The hamburger menu in the top left will display a slide out menu with all availa

##### Palette
- Compute
- <img src="images/Instance.png?raw=true" width="30" height="30"/> Instance
- <img src="images/Load_Balancer.png?raw=true" width="30" height="30"/> Load Balancer
- <img src="../okitweb/static/okit/palette/compute/Instance.svg?raw=true" width="30" height="30"/> Instance
- Containers
- <img src="images/Compartment.png?raw=true" width="30" height="30"/> Compartment
- <img src="images/Container.png?raw=true" width="30" height="30"/> Container (OKE)
- <img src="../okitweb/static/okit/palette/containers/Compartment.svg?raw=true" width="30" height="30"/> Compartment
- Database
- <img src="images/Autonomous_Database.png?raw=true" width="30" height="30"/> Autonomous Database
- <img src="../okitweb/static/okit/palette/database/Autonomous_Database.svg?raw=true" width="30" height="30"/> Autonomous Database
- <img src="../okitweb/static/okit/palette/database/Database_System.svg?raw=true" width="30" height="30"/> Database System
- Gateways
- <img src="images/Dynamic_Routing_Gateway.png?raw=true" width="30" height="30"/> Dynamic Routing Gateway
- <img src="images/Internet_Gateway.png?raw=true" width="30" height="30"/> Internet Gateway
- <img src="images/NAT_Gateway.png?raw=true" width="30" height="30"/> NAT Gateway
- <img src="images/Service_Gateway.png?raw=true" width="30" height="30"/> Service Gateway
- <img src="../okitweb/static/okit/palette/gateways/Dynamic_Routing_Gateway.svg?raw=true" width="30" height="30"/> Dynamic Routing Gateway
- <img src="../okitweb/static/okit/palette/gateways/Internet_Gateway.svg?raw=true" width="30" height="30"/> Internet Gateway
- <img src="../okitweb/static/okit/palette/gateways/NAT_Gateway.svg?raw=true" width="30" height="30"/> NAT Gateway
- <img src="../okitweb/static/okit/palette/gateways/Service_Gateway.svg?svg=true" width="30" height="30"/> Service Gateway
- <img src="../okitweb/static/okit/palette/gateways/Local_Peering_Gateway.svg?svg=true" width="30" height="30"/> Local Peering Gateway
- Networking
- <img src="images/Fast_Connect.png?raw=true" width="30" height="30"/> Fast Connect
- <img src="images/Route_Table.png?raw=true" width="30" height="30"/> Route Table
- <img src="images/Security_List.png?raw=true" width="30" height="30"/> Security List
- <img src="images/Subnet.png?raw=true" width="30" height="30"/> Subnet
- <img src="images/Virtual_Cloud_Network.png?raw=true" width="30" height="30"/> Virtual Cloud Network
- <img src="../okitweb/static/okit/palette/networking/Fast_Connect.svg?raw=true" width="30" height="30"/> Fast Connect
- <img src="../okitweb/static/okit/palette/networking/Load_Balancer.svg?raw=true" width="30" height="30"/> Load Balancer
- <img src="../okitweb/static/okit/palette/networking/Network_Security_Group.svg?raw=true" width="30" height="30"/> Network Security Group
- <img src="../okitweb/static/okit/palette/networking/Route_Table.svg?raw=true" width="30" height="30"/> Route Table
- <img src="../okitweb/static/okit/palette/networking/Security_List.svg?raw=true" width="30" height="30"/> Security List
- <img src="../okitweb/static/okit/palette/networking/Subnet.svg?raw=true" width="30" height="30"/> Subnet
- <img src="../okitweb/static/okit/palette/networking/Virtual_Cloud_Network.svg?raw=true" width="30" height="30"/> Virtual Cloud Network
- Storage
- <img src="images/Block_Storage_Volume.png?raw=true" width="30" height="30"/> Block Storage Volume
- <img src="images/File_Storage_System.png?raw=true" width="30" height="30"/> File Storage System
- <img src="images/Object_Storage_Bucket.png?raw=true" width="30" height="30"/> Object Storage Bucket
- <img src="../okitweb/static/okit/palette/storage/Block_Storage_Volume.svg?raw=true" width="30" height="30"/> Block Storage Volume
- <img src="../okitweb/static/okit/palette/storage/File_Storage_System.svg?raw=true" width="30" height="30"/> File Storage System
- <img src="../okitweb/static/okit/palette/storage/Object_Storage_Bucket.svg?raw=true" width="30" height="30"/> Object Storage Bucket

##### Menu
![OKIT Web Interface Menu](images/okit_menu.png?raw=true "OKIT Web Interface Menu")
Expand All @@ -130,15 +132,22 @@ The hamburger menu in the top left will display a slide out menu with all availa
- New
- Load
- Save
- Save
- Save As Template
- Query
- Redraw
- Templates
- Query
- OCI
- Infrastructure
- Network
- Reference Architecture
- Generate
- Export
- Image
- png
- jpeg
- svg
- Terraform
- Ansible
- Export
- SVG
- Resource Manager

###### Canvas/New
Expand All @@ -147,22 +156,26 @@ Creates a new clear canvas.
Allows the user to select a previously saved or command line generated json file.
###### Canvas/Save
Saves the current diagram as a json representation.
##### Canvas/Query
Opens Query pages and populates the Compartment list. Once the user has chosen the compartment and regions.
Submitting will query OCI and draw the returning assets on the new designer canvas.
###### Canvas/Redraw
Redraws the existing canvas this will have the effect of grouping similar assets.
###### Templates
This is a dynamic menu that represents the available templates that can be loaded as a starting point for system development.
##### Query/OCI
Opens Query pages and populates the Compartment list. Once the user has chosen the compartment and added a virtual cloud network
filter submitting will query OCI and draw the returning assets on the new designer canvas.
##### Generate/Terraform
##### Export/Terraform
Generate a set of Terraform that can be used to build the designed OCI infrastructure currently loaded and return as a zip file.
##### Generate/Ansible
##### Export/Ansible
Generate a set of Ansible that can be used to build the designed OCI infrastructure currently loaded and return as a zip file.
###### Export/SVG
###### Export/Image/png
Will export the current diagram as a png image that can be distributed.
###### Export/Image/jpeg
Will export the current diagram as a jpeg image that can be distributed.
###### Export/Image/svg
Will export the current diagram as an SVG object that can be distributed.
###### Export/Resource Manager
Will generate Terraform code and export the resulting zip file into the OCI Resource Manager. Once uploaded it will initiate
a plan job.
a plan or apply job.



Expand Down Expand Up @@ -195,7 +208,7 @@ we can change the name it is for display purposes only because this Compartment
![Example Step 1](images/Example01.png)
### Step 2 : Add Virtual Cloud Network
The first this we will need for our Load Balancer example is to create a Virtual Cloud Network and this can be achieved
by dragging the Virtual Cloud Network Icon <img src="images/Virtual_Cloud_Network.png?raw=true" width="20" height="20"/>
by dragging the Virtual Cloud Network Icon <img src="../okitweb/static/okit/palette/networking/Virtual_Cloud_Network.svg?raw=true" width="20" height="20"/>
from the palette onto the compartment. Doing this will create a Simple Virtual Cloud Network and populate it with a default
Route Table and Security List. Again if the names do not match you requirements select the Artifact and edit in the properties panel.
Looking at the Properties you will notice that a number of default values have been assigned including the CIDR which will
Expand All @@ -206,37 +219,37 @@ in this example. The generation of these is optional and configured in the setti
![Example Step 2](images/Example02.png)
### Step 3 : Add Internet Gateway
To allow access to our system we will need an Internet Gateway added to the Virtual Cloud Network. We will do this in the
same way we did for the Virtual Cloud Network but selecting the Internet Gateway Icon <img src="images/Internet_Gateway.png?raw=true" width="20" height="20"/>
same way we did for the Virtual Cloud Network but selecting the Internet Gateway Icon <img src="../okitweb/static/okit/palette/gateways/NAT_Gateway.svg?raw=true" width="20" height="20"/>
from the palette and dragging it over the Virtual Cloud Network. You should note whilst doing this how the drag Icon changes
to indicate allowable drop targets.
![Example Step 3](images/Example03.png)
### Step 4 : Select Route Table
The auto generated Route Table will need to be modified to add a Route Rule to direct traffic to the Internet Gateway. Select
the Route Table <img src="images/Route_Table.png?raw=true" width="20" height="20"/> on the Canvas and its
the Route Table <img src="../okitweb/static/okit/palette/networking/Route_Table.svg?raw=true" width="20" height="20"/> on the Canvas and its
properties will appear in the properties Panel. Click the Green ***"+"*** button on the rules table and a new Rule will be created.
![Example Step 4](images/Example04.png)
Within the new Rule we will specify the Destination (CIDR Block) and the appropriate Gateway (Network Entity).
![Example Step 5](images/Example05.png)
### Step 5 : Add Subnet
We will now add a Subnet to our diagram by selecting the Subnet Icon <img src="images/Subnet.png?raw=true" width="20" height="20"/>
from the Palette and dragging it over the Virtual Cloud Network. Dropping this will create place a Subnet on our Virtual Cloude Network
We will now add a Subnet to our diagram by selecting the Subnet Icon <img src="../okitweb/static/okit/palette/networking/Subnet.svg?raw=true" width="20" height="20"/>
from the Palette and dragging it over the Virtual Cloud Network. Dropping this will create place a Subnet on our Virtual Cloud Network
with a CIDR based on its parent (10.0.0.0/24) Additional Subnet will increment the 3rd Octet.
![Example Step 6](images/Example06.png)
### Step 6 : Connect Subnet to Route Table & Security List
To allow Artifacts within the network to access / be accessed by the internet we will need to provide it with a Route Table
and Security List. We can achieve this by selecting the Subnet and editing the properties to select the existing Route Table abd Security List.
Once this has been done you will notice that the Route Table Icon <img src="images/Route_Table.png?raw=true" width="20" height="20"/>
and Security List Icon <img src="images/Security_List.png?raw=true" width="20" height="20"/> have moved to the
Once this has been done you will notice that the Route Table Icon <img src="../okitweb/static/okit/palette/networking/Route_Table.svg?raw=true" width="20" height="20"/>
and Security List Icon <img src="../okitweb/static/okit/palette/networking/Security_List.svg?raw=true" width="20" height="20"/> have moved to the
top edge of the Subnet to indicate that the Subnet has assigned Route Table and Security. Additional Subnet can also select the same
Route Table and Security List.
![Example Step 7](images/Example07.png)
### Step 7 : Add Instances
We will now create 2 Instances within the Subnet by dragging the Instance Icon <img src="images/Instance.png?raw=true" width="20" height="20"/>
We will now create 2 Instances within the Subnet by dragging the Instance Icon <img src="../okitweb/static/okit/palette/compute/Instance.svg?raw=true" width="20" height="20"/>
from the Palette and dropping it on the Subnet. You will notice that the second Instance will have the designation "002"
rather than "001".
![Example Step 8](images/Example08.png)
### Step 8 : Add load Balancer
Next well will create a Load Balancer by dragging the Load Balancer Icon <img src="images/Load_Balancer.png?raw=true" width="20" height="20"/>
Next well will create a Load Balancer by dragging the Load Balancer Icon <img src="../okitweb/static/okit/palette/networking/Load_Balancer.svg?raw=true" width="20" height="20"/>
from the Palette onto the Subnet. You will notice that Instances move and this is because the Visualiser controls placement
and will dynamically move / resize components to best display the system.
![Example Step 9](images/Example09.png)
Expand All @@ -249,7 +262,7 @@ you note that Load Balancer and the Instances become connected in the diagram.
### Step 10 : Update Instance Properties
Our final step will be to update each of the instances to provide an Authorised Key for the instance and a Cloud Init YAML
to install and configure nginx. We will do this by selecting each Instance individually and editing the properties and using
the [Cloud Init YANL](#cloud-init-yaml) below. Once this has been done our diagram is now complete and can be saved using the
the [Cloud Init YAML](#cloud-init-yaml) below. Once this has been done our diagram is now complete and can be saved using the
"Save" option below the "Hamburger" menu.
![Example Step 12](images/Example12.png)
#### Cloud Init YAML
Expand Down
Binary file modified documentation/images/Example01.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified documentation/images/Example02.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified documentation/images/Example03.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified documentation/images/Example04.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified documentation/images/Example05.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified documentation/images/Example06.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified documentation/images/Example07.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified documentation/images/Example08.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified documentation/images/Example09.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified documentation/images/Example10.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified documentation/images/Example11.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified documentation/images/Example12.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified documentation/images/okit_menu.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified documentation/images/okit_web_interface.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 8876c88

Please sign in to comment.