Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ require (
github.com/metal3-io/baremetal-operator/pkg/hardwareutils v0.0.0
github.com/mitchellh/cli v1.1.2
github.com/openshift-metal3/terraform-provider-ironic v0.2.7
github.com/openshift/api v0.0.0-20220124143425-d74727069f6f
github.com/openshift/api v0.0.0-20220203140920-bfe251c51d2d
github.com/openshift/client-go v0.0.0-20211025111749-96ca2abfc56c
github.com/openshift/cloud-credential-operator v0.0.0-20200316201045-d10080b52c9e
github.com/openshift/cluster-api-provider-baremetal v0.0.0-20210924143856-c2d3ece4da38
Expand All @@ -77,6 +77,7 @@ require (
github.com/terraform-providers/terraform-provider-azurestack v0.10.0
github.com/terraform-providers/terraform-provider-ignition/v2 v2.1.0
github.com/terraform-providers/terraform-provider-local v1.4.0
github.com/terraform-providers/terraform-provider-nutanix v1.1.0
github.com/terraform-providers/terraform-provider-random v1.3.2-0.20190925210718-83518d96ae4f
github.com/ulikunitz/xz v0.5.8
github.com/vincent-petithory/dataurl v0.0.0-20191104211930-d1553a71de50
Expand All @@ -103,6 +104,8 @@ require (
sigs.k8s.io/controller-tools v0.7.0
)

require github.com/kdomanski/iso9660 v0.2.1

require (
cloud.google.com/go/bigtable v1.5.0 // indirect
cloud.google.com/go/storage v1.11.0 // indirect
Expand Down Expand Up @@ -376,6 +379,7 @@ replace (
github.com/terraform-providers/terraform-provider-ignition/v2 => github.com/community-terraform-providers/terraform-provider-ignition/v2 v2.1.0
k8s.io/client-go => k8s.io/client-go v0.23.0
k8s.io/kubectl => k8s.io/kubectl v0.23.0
github.com/terraform-providers/terraform-provider-nutanix => github.com/nutanix/terraform-provider-nutanix v1.2.2-0.20211029075448-e21f85ac2cf7
sigs.k8s.io/cluster-api-provider-aws => github.com/openshift/cluster-api-provider-aws v0.2.1-0.20210121023454-5ffc5f422a80
sigs.k8s.io/cluster-api-provider-azure => github.com/openshift/cluster-api-provider-azure v0.1.0-alpha.3.0.20210626224711-5d94c794092f // Indirect dependency through MAO from cluster API providers
sigs.k8s.io/cluster-api-provider-openstack => github.com/openshift/cluster-api-provider-openstack v0.0.0-20211111204942-611d320170af
Expand Down
8 changes: 6 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -1208,6 +1208,8 @@ github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0Lh
github.com/katbyte/terrafmt v0.2.1-0.20200303174203-e6a3e82cb21b/go.mod h1:WRq5tDmK04tcYbEr400zAUWtOK0jix54e8YeHP3IoQg=
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs=
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8=
github.com/kdomanski/iso9660 v0.2.1 h1:IepyfCeEqx77rZeOM4XZgWB4XJWEF7Jp+1ehMTrSElg=
github.com/kdomanski/iso9660 v0.2.1/go.mod h1:LY50s7BlG+ES6V99oxYGd0ub9giLrKdHZb3LLOweBj0=
github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd h1:Coekwdh0v2wtGp9Gmz1Ze3eVRAWJMLokvN3QjdzCHLY=
github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM=
github.com/keybase/go-crypto v0.0.0-20161004153544-93f5b35093ba/go.mod h1:ghbZscTyKdM07+Fw3KSi0hcJm+AlEUWj8QLlPtijN/M=
Expand Down Expand Up @@ -1439,6 +1441,8 @@ github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLA
github.com/nishanths/exhaustive v0.0.0-20200708172631-8866003e3856/go.mod h1:wBEpHwM2OdmeNpdCvRPUlkEbBuaFmcK4Wv8Q7FuGW3c=
github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d h1:VhgPp6v9qf9Agr/56bj7Y/xa04UccTW04VP0Qed4vnQ=
github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d/go.mod h1:YUTz3bUH2ZwIWBy3CJBeOBEugqcmXREj14T+iG/4k4U=
github.com/nutanix/terraform-provider-nutanix v1.2.2-0.20211029075448-e21f85ac2cf7 h1:XSW7lfLeXiwu1wT8qchccK76lyco9MdSuch5RYjeaZA=
github.com/nutanix/terraform-provider-nutanix v1.2.2-0.20211029075448-e21f85ac2cf7/go.mod h1:XNd4Ph1C07UCzVdGq9IJ98nsRLq4gQwmiZ2fJo6Vhlg=
github.com/nwaples/rardecode v1.0.0/go.mod h1:5DzqNKiOdpKKBH87u8VlvAnPZMXcGRhxWkRpHbbfGS0=
github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE=
Expand Down Expand Up @@ -1518,8 +1522,8 @@ github.com/openshift/api v0.0.0-20210816181336-8ff39b776da3/go.mod h1:x81TFA31x1
github.com/openshift/api v0.0.0-20211025104849-a11323ccb6ea/go.mod h1:RsQCVJu4qhUawxxDP7pGlwU3IA4F01wYm3qKEu29Su8=
github.com/openshift/api v0.0.0-20211108165917-be1be0e89115/go.mod h1:RsQCVJu4qhUawxxDP7pGlwU3IA4F01wYm3qKEu29Su8=
github.com/openshift/api v0.0.0-20211209135129-c58d9f695577/go.mod h1:DoslCwtqUpr3d/gsbq4ZlkaMEdYqKxuypsDjorcHhME=
github.com/openshift/api v0.0.0-20220124143425-d74727069f6f h1:iOTv1WudhVm2UsoST+L+ZrA5A9w57h9vmQsdlBuqG6g=
github.com/openshift/api v0.0.0-20220124143425-d74727069f6f/go.mod h1:F/eU6jgr6Q2VhMu1mSpMmygxAELd7+BUxs3NHZ25jV4=
github.com/openshift/api v0.0.0-20220203140920-bfe251c51d2d h1:WuD14VS4SFKKH5hKeYiHTswlEByICzMNvaZrDXUjZiY=
github.com/openshift/api v0.0.0-20220203140920-bfe251c51d2d/go.mod h1:F/eU6jgr6Q2VhMu1mSpMmygxAELd7+BUxs3NHZ25jV4=
github.com/openshift/baremetal-operator v0.0.0-20211201170610-92ffa60c683d h1:4KkYItiWENIs2bV6lKOcIMdWUnZJA+GWT9Us7z0P1UA=
github.com/openshift/baremetal-operator v0.0.0-20211201170610-92ffa60c683d/go.mod h1:p32F1DBUxfgd0JjM4rCuhJomFJokEoWR1Z/LZNL2LM8=
github.com/openshift/baremetal-operator/apis v0.0.0-20211201170610-92ffa60c683d h1:DHGXCvXWsPExutf3tgQYD4TVDSAOviLXO7Vnc42oXhw=
Expand Down
5 changes: 5 additions & 0 deletions pkg/types/clustermetadata.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (
"github.com/openshift/installer/pkg/types/gcp"
"github.com/openshift/installer/pkg/types/ibmcloud"
"github.com/openshift/installer/pkg/types/libvirt"
"github.com/openshift/installer/pkg/types/nutanix"
"github.com/openshift/installer/pkg/types/openstack"
"github.com/openshift/installer/pkg/types/ovirt"
"github.com/openshift/installer/pkg/types/vsphere"
Expand Down Expand Up @@ -37,6 +38,7 @@ type ClusterPlatformMetadata struct {
BareMetal *baremetal.Metadata `json:"baremetal,omitempty"`
Ovirt *ovirt.Metadata `json:"ovirt,omitempty"`
VSphere *vsphere.Metadata `json:"vsphere,omitempty"`
Nutanix *nutanix.Metadata `json:"nutanix,omitempty"`
}

// Platform returns a string representation of the platform
Expand Down Expand Up @@ -76,5 +78,8 @@ func (cpm *ClusterPlatformMetadata) Platform() string {
if cpm.VSphere != nil {
return vsphere.Name
}
if cpm.Nutanix != nil {
return nutanix.Name
}
return ""
}
4 changes: 4 additions & 0 deletions pkg/types/defaults/installconfig.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import (
ibmclouddefaults "github.com/openshift/installer/pkg/types/ibmcloud/defaults"
libvirtdefaults "github.com/openshift/installer/pkg/types/libvirt/defaults"
nonedefaults "github.com/openshift/installer/pkg/types/none/defaults"
nutanixdefaults "github.com/openshift/installer/pkg/types/nutanix/defaults"
openstackdefaults "github.com/openshift/installer/pkg/types/openstack/defaults"
ovirtdefaults "github.com/openshift/installer/pkg/types/ovirt/defaults"
vspheredefaults "github.com/openshift/installer/pkg/types/vsphere/defaults"
Expand Down Expand Up @@ -107,5 +108,8 @@ func SetInstallConfigDefaults(c *types.InstallConfig) {
}
case c.Platform.None != nil:
nonedefaults.SetPlatformDefaults(c.Platform.None)
case c.Platform.Nutanix != nil:
nutanixdefaults.SetPlatformDefaults(c.Platform.Nutanix, c)
}

}
8 changes: 8 additions & 0 deletions pkg/types/installconfig.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import (
"github.com/openshift/installer/pkg/types/ibmcloud"
"github.com/openshift/installer/pkg/types/libvirt"
"github.com/openshift/installer/pkg/types/none"
"github.com/openshift/installer/pkg/types/nutanix"
"github.com/openshift/installer/pkg/types/openstack"
"github.com/openshift/installer/pkg/types/ovirt"
"github.com/openshift/installer/pkg/types/vsphere"
Expand All @@ -37,6 +38,7 @@ var (
azure.Name,
gcp.Name,
ibmcloud.Name,
nutanix.Name,
openstack.Name,
ovirt.Name,
vsphere.Name,
Expand Down Expand Up @@ -212,6 +214,10 @@ type Platform struct {
// Ovirt is the configuration used when installing on oVirt.
// +optional
Ovirt *ovirt.Platform `json:"ovirt,omitempty"`

// Nutanix is the configuration used when installing on Nutanix.
// +optional
Nutanix *nutanix.Platform `json:"nutanix,omitempty"`
}

// Name returns a string representation of the platform (e.g. "aws" if
Expand Down Expand Up @@ -243,6 +249,8 @@ func (p *Platform) Name() string {
return vsphere.Name
case p.Ovirt != nil:
return ovirt.Name
case p.Nutanix != nil:
return nutanix.Name
default:
return ""
}
Expand Down
6 changes: 6 additions & 0 deletions pkg/types/machinepools.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (
"github.com/openshift/installer/pkg/types/gcp"
"github.com/openshift/installer/pkg/types/ibmcloud"
"github.com/openshift/installer/pkg/types/libvirt"
"github.com/openshift/installer/pkg/types/nutanix"
"github.com/openshift/installer/pkg/types/openstack"
"github.com/openshift/installer/pkg/types/ovirt"
"github.com/openshift/installer/pkg/types/vsphere"
Expand Down Expand Up @@ -100,6 +101,9 @@ type MachinePoolPlatform struct {

// Ovirt is the configuration used when installing on oVirt.
Ovirt *ovirt.MachinePool `json:"ovirt,omitempty"`

// Nutanix is the configuration used when installing on Nutanix.
Nutanix *nutanix.MachinePool `json:"nutanix,omitempty"`
}

// Name returns a string representation of the platform (e.g. "aws" if
Expand Down Expand Up @@ -129,6 +133,8 @@ func (p *MachinePoolPlatform) Name() string {
return vsphere.Name
case p.Ovirt != nil:
return ovirt.Name
case p.Nutanix != nil:
return nutanix.Name
default:
return ""
}
Expand Down
5 changes: 5 additions & 0 deletions pkg/types/nutanix/OWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# See the OWNERS docs: https://git.k8s.io/community/contributors/guide/owners.md
# This file just uses aliases defined in OWNERS_ALIASES.

approvers:
- nutanix-approvers
35 changes: 35 additions & 0 deletions pkg/types/nutanix/client.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package nutanix

import (
"context"
"fmt"
"time"

nutanixClient "github.com/terraform-providers/terraform-provider-nutanix/client"
nutanixClientV3 "github.com/terraform-providers/terraform-provider-nutanix/client/v3"
"k8s.io/klog"
)


func CreateNutanixClient(ctx context.Context, prismCentral, port, username, password string, insecure bool) (*nutanixClientV3.Client, error) {
ctx, cancel := context.WithTimeout(ctx, 60*time.Second)
defer cancel()

cred := nutanixClient.Credentials{
URL: fmt.Sprintf("%s:%s", prismCentral, port),
Username: username,
Password: password,
Port: port,
Endpoint: prismCentral,
Insecure: insecure,
}

cli, err := nutanixClientV3.NewV3Client(cred)
if err != nil {
klog.Errorf("Failed to create the nutanix client. error: %v", err)
return nil, err
}

return cli, nil

}
10 changes: 10 additions & 0 deletions pkg/types/nutanix/defaults/platform.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package defaults

import (
"github.com/openshift/installer/pkg/types"
"github.com/openshift/installer/pkg/types/nutanix"
)


// SetPlatformDefaults sets the defaults for the platform.
func SetPlatformDefaults(p *nutanix.Platform, installConfig *types.InstallConfig) {}
42 changes: 42 additions & 0 deletions pkg/types/nutanix/defaults/platform_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package defaults

import (
"testing"

"github.com/stretchr/testify/assert"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"

"github.com/openshift/installer/pkg/types"
"github.com/openshift/installer/pkg/types/nutanix"
)

const testClusterName = "test-cluster"

func defaultPlatform() *nutanix.Platform {
return &nutanix.Platform{}
}

func TestSetPlatformDefaults(t *testing.T) {
cases := []struct {
name string
platform *nutanix.Platform
expected *nutanix.Platform
}{
{
name: "empty",
platform: &nutanix.Platform{},
expected: defaultPlatform(),
},
}
for _, tc := range cases {
t.Run(tc.name, func(t *testing.T) {
ic := &types.InstallConfig{
ObjectMeta: metav1.ObjectMeta{
Name: testClusterName,
},
}
SetPlatformDefaults(tc.platform, ic)
assert.Equal(t, tc.expected, tc.platform, "unexpected platform")
})
}
}
5 changes: 5 additions & 0 deletions pkg/types/nutanix/doc.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
// Package nutanix contains Nutanix-specific structures for installer
// configuration and management.
package nutanix

const Name = "nutanix"
Loading