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
30 changes: 27 additions & 3 deletions glide.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions glide.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ import:
version: 296cb990171c6da62e134f3590c120bd16ef4d43
subpackages:
- contrib/pkg/aws_tag_deprovision
- package: github.com/mholt/archiver
version: 2.1.0
testImport:
- package: github.com/stretchr/testify
version: ^1.2.2
Expand Down
5 changes: 4 additions & 1 deletion hack/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,7 @@ set -e

cd "$(dirname "$0")/.."

CGO_ENABLED=0 go build -o ./bin/openshift-install ./cmd/openshift-install
archive=$(tar cz steps modules config.tf | base64 -w 0)
LDFLAGS="-X github.com/openshift/installer/pkg/asset/cluster.TemplateArchive=${archive}"

CGO_ENABLED=0 go build -ldflags "${LDFLAGS}" -o ./bin/openshift-install ./cmd/openshift-install
29 changes: 21 additions & 8 deletions pkg/asset/cluster/cluster.go
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
package cluster

import (
"bytes"
"encoding/base64"
"encoding/json"
"fmt"
"io/ioutil"
"os"
"path/filepath"

"github.com/mholt/archiver"
log "github.com/sirupsen/logrus"

"github.com/openshift/installer/pkg/asset"
Expand All @@ -18,6 +21,8 @@ const (
stateFileName = "terraform.state"
)

var TemplateArchive = ""

// Cluster uses the terraform executable to launch a cluster
// with the given terraform tfvar and generated templates.
type Cluster struct {
Expand All @@ -37,38 +42,46 @@ func (c *Cluster) Name() string {
// Dependencies returns the direct dependency for launching
// the cluster.
func (c *Cluster) Dependencies() []asset.Asset {
return []asset.Asset{c.tfvars, c.kubeconfig}
return []asset.Asset{
c.tfvars,
c.kubeconfig,
}
}

// Generate launches the cluster and generates the terraform state file on disk.
func (c *Cluster) Generate(parents map[asset.Asset]*asset.State) (*asset.State, error) {
dir, err := terraform.BaseLocation()
if err != nil {
return nil, fmt.Errorf("error finding baselocation for terraform: %v", err)
}

state, ok := parents[c.tfvars]
if !ok {
return nil, fmt.Errorf("failed to get terraform.tfvar state in the parent asset states")
}

// Copy the terraform.tfvars to a temp directory where the terraform will be invoked within.
// Create a temp directory in which Terraform will be invoked.
tmpDir, err := ioutil.TempDir(os.TempDir(), "openshift-install-")
if err != nil {
return nil, fmt.Errorf("failed to create temp dir: %v", err)
}
defer os.RemoveAll(tmpDir)

// Copy the terraform.tfvars to the temp directory.
if err := ioutil.WriteFile(filepath.Join(tmpDir, state.Contents[0].Name), state.Contents[0].Data, 0600); err != nil {
return nil, fmt.Errorf("failed to write terraform.tfvars file: %v", err)
}

// Copy the Terraform templates into the temp directory.
compressedArchive, err := base64.StdEncoding.DecodeString(TemplateArchive)
if err != nil {
return nil, fmt.Errorf("failed to decompress template archive: %v", err)
}
if err := archiver.TarGz.Read(bytes.NewBuffer(compressedArchive), tmpDir); err != nil {
return nil, err
}

var tfvars config.Cluster
if err := json.Unmarshal(state.Contents[0].Data, &tfvars); err != nil {
return nil, fmt.Errorf("failed to unmarshal terraform tfvars file: %v", err)
}

templateDir, err := terraform.FindStepTemplates(dir, terraform.InfraStep, tfvars.Platform)
templateDir, err := terraform.FindStepTemplates(tmpDir, terraform.InfraStep, tfvars.Platform)
if err != nil {
return nil, fmt.Errorf("error finding terraform templates: %v", err)
}
Expand Down
24 changes: 24 additions & 0 deletions vendor/github.com/dsnet/compress/LICENSE.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

74 changes: 74 additions & 0 deletions vendor/github.com/dsnet/compress/api.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

110 changes: 110 additions & 0 deletions vendor/github.com/dsnet/compress/bzip2/bwt.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading