Skip to content

Commit

Permalink
Merge pull request #15 from nutanix/v3.0.0-finish
Browse files Browse the repository at this point in the history
V3.0.0 final
  • Loading branch information
tuxtof authored Oct 31, 2021
2 parents 2274119 + a8974f1 commit b768782
Show file tree
Hide file tree
Showing 8 changed files with 287 additions and 84 deletions.
6 changes: 3 additions & 3 deletions .github/workflows/integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
- name: Setup Go
uses: actions/setup-go@v2
with:
go-version: '^1.16'
go-version: '^1.17'

- name: Checkout Code
uses: actions/checkout@v2
Expand All @@ -29,7 +29,7 @@ jobs:
- name: Setup Go
uses: actions/setup-go@v2
with:
go-version: '^1.16'
go-version: '^1.17'

- name: Checkout Code
uses: actions/checkout@v2
Expand All @@ -44,7 +44,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v2
with:
go-version: '^1.16'
go-version: '^1.17'

- name: Check out code into the Go module directory
uses: actions/checkout@v2
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v2
with:
go-version: '^1.16'
go-version: '^1.17'

- name: Create release on GitHub
uses: goreleaser/goreleaser-action@v2
Expand Down
75 changes: 65 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,75 @@
# Nutanix Docker Machine driver
# Nutanix Rancher Node Driver

## Build, Quality Status
This repository contains the Rancher Node Driver for Nutanix. Nutanix Node driver are used to provision hosts on Nutanix Enterprise Cloud, which Rancher uses to launch and manage Kubernetes clusters.

[![Go Report Card](https://goreportcard.com/badge/github.com/tuxtof/nutanix-docker-machine)](https://goreportcard.com/report/github.com/tuxtof/nutanix-docker-machine)
<!-- [![Maintainability](https://api.codeclimate.com/v1/badges/8b9e61df450276bbdbdb/maintainability)](https://codeclimate.com/github/nutanix/terraform-provider-nutanix/maintainability)
[![Test Coverage](https://api.codeclimate.com/v1/badges/8b9e61df450276bbdbdb/test_coverage)](https://codeclimate.com/github/nutanix/terraform-provider-nutanix/test_coverage) -->

|Master |
| --------------- |
| ![Integration](https://github.com/nutanix/docker-machine/workflows/Integration/badge.svg) |
---

[![Go Report Card](https://goreportcard.com/badge/github.com/nutanix/docker-machine)](https://goreportcard.com/report/github.com/nutanix/docker-machine)
![CI](https://github.com/nutanix/docker-machine/actions/workflows/integration.yml/badge.svg)
![Release](https://github.com/nutanix/docker-machine/actions/workflows/release.yml/badge.svg)

[![release](https://img.shields.io/github/release-pre/nutanix/docker-machine.svg)](https://github.com/nutanix/docker-machine/releases)
[![License](https://img.shields.io/badge/License-MPL%202.0-blue.svg)](https://github.com/nutanix/docker-machine/blob/master/LICENSE)
![Proudly written in Golang](https://img.shields.io/badge/written%20in-Golang-92d1e7.svg)
[![Releases](https://img.shields.io/github/downloads/nutanix/docker-machine/total.svg)](https://github.com/nutanix/docker-machine/releases)

This repository contains Nutanix docker machine driver
---

Features
---------

1. Ability to select VM's Main Memory in Megabytes
2. Ability to select VM's vCPU count
3. Ability to set a custom name for the newly created VM
4. Ability to set the number of cores per vCPU
5. Ability to specify the network(s) of the VM
6. Ability to specify the template disk in the VM by image name and modify his size (increase only)
7. Ability to specify categories to applied to the VM ( flow, leap, ...)
8. Ability to add one additional disk by specifying disk-size and storage-container
9. Enable passthrough the host's CPU features to the newly created VM


Installation
--------------------

If you want to use Nutanix Node Driver, you need add it in order to start using them to create node templates and eventually node pools for your Kubernetes cluster.

1. From the Home view, choose *Cluster Management* > *Drivers* in the navigation bar. From the Drivers page, select the *Node Drivers* tab.
2. Click *Add Node Driver*.
3. Complete the Add Node Driver form. Then click Create.

![image](https://user-images.githubusercontent.com/180613/139591695-ec43a6e1-f351-4221-afda-90ae07961be4.png)


Driver Args
-----------
|Arg |Description |Required |Default |
|--------------------------------|:------------------------------------------------------------------------|:-----------------|--------|
| `--nutanix-endpoint` |The hostname/ip-address of the Prism Central |yes ||
| `--nutanix-username` |The username of the nutanix management account |yes ||
| `--nutanix-password` |The password of the nutanix management account |yes ||
| `--nutanix-insecure` |Set to true to force SSL insecure connection |no |false|
| `--nutanix-cluster` |The name of the cluster where deploy the VM (case sensitive) |yes ||
| `--nutanix-vm-mem` |The amount of RAM of the newly created VM (MB) |no | 2 GB|
| `--nutanix-vm-cpus` |The number of cpus in the newly created VM (core) |no | 2|
| `--nutanix-vm-cores` |The number of cores per vCPU |no | 1|
| `--nutanix-vm-network` |The network(s) to which the VM is attached to |yes ||
| `--nutanix-vm-image` |The name of the Image we use as a template for the newly created VM |yes ||
| `--nutanix-vm-image-size` |The new size of the Image we use as a template (in GiB) |no ||
| `--nutanix-vm-categories` |The name of the categories who will be applied to the newly created VM |no ||
| `--nutanix-disk-size` |The size of the additional disk to add to the VM (in GiB) |no ||
| `--nutanix-storage-container` |The storage container UUID of the additional disk to add to the VM |no ||
| `--nutanix-vm-cpu-passthrough` |Enable passthrough the host's CPU features to the newly created VM |no |false|

Build Instructions
--------------------

build linux/amd64 binary => `make`
build local binary => `make local`
## History

* v1 is the original Nutanix docker machine driver that connect to Prism Element
* v2.x add Rancher 2.0 support
* v3.x is the latest branch version that connect to Prism Central
* v3.x is a rewrite of the driver that connect to Prism Central

10 changes: 8 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,16 @@ module nutanix

go 1.14

replace github.com/docker/docker => github.com/docker/engine v17.12.0-ce-rc1.0.20200916142827-bd33bbf0497b+incompatible

replace github.com/terraform-providers/terraform-provider-nutanix => github.com/nutanix/terraform-provider-nutanix v1.2.2-0.20211029075448-e21f85ac2cf7

require (
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect
github.com/docker/docker v1.13.1 // indirect
github.com/docker/machine v0.16.2
github.com/google/uuid v1.1.1
github.com/sirupsen/logrus v1.5.0
github.com/google/uuid v1.3.0
github.com/sirupsen/logrus v1.8.1
github.com/terraform-providers/terraform-provider-nutanix v1.1.0
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect
)
Loading

0 comments on commit b768782

Please sign in to comment.