Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added correct docker and terraform configuration command #53

Merged
merged 3 commits into from
Aug 4, 2023
Merged
Changes from 1 commit
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
28 changes: 21 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,14 @@ $ make build
$ ls $GOPATH/bin/terraform-provider-cloudstack
```
Once the build is ready, you have to copy the binary into Terraform locally (version appended).
On Linux this path is at ~/.terraform.d/plugins, and on Windows at %APPDATA%\terraform.d\plugins.

On Linux and Mac this path is at ~/.terraform.d/plugins,
On Windows at %APPDATA%\terraform.d\plugins,

```sh
$ ls ~/.terraform.d/plugins/registry.terraform.io/cloudstack/cloudstack/0.4.0/linux_amd64/terraform-provider-cloudstack_v0.4.0
$ cd ~
$ mkdir -p .terraform.d/plugins/localdomain/provider/cloudstack/0.4.0/linux_amd64
rohityadavcloud marked this conversation as resolved.
Show resolved Hide resolved
$ cp $GOPATH/bin/terraform-provider-cloudstack .terraform.d/plugins/localdomain/provider/cloudstack/0.4.0/linux_amd64
rohityadavcloud marked this conversation as resolved.
Show resolved Hide resolved
```

Testing the Provider
Expand All @@ -65,8 +70,17 @@ $ make test
In order to run the full suite of Acceptance tests you will need to run the CloudStack Simulator. Please follow these steps to prepare an environment for running the Acceptance tests:

```sh
$ docker pull cloudstack/simulator
$ docker run --name simulator -p 8080:5050 -d cloudstack/simulator
docker pull apache/cloudstack-simulator

or pull it with a particular build tag

docker pull apache/cloudstack-simulator:4.17.2.0

docker run --name simulator -p 8080:5050 -d apache/cloudstack-simulator

or

docker run --name simulator -p 8080:5050 -d apache/cloudstack-simulator:4.17.2.0
```

When Docker started the container you can go to http://localhost:8080/client and login to the CloudStack UI as user `admin` with password `password`. It can take a few minutes for the container is fully ready, so you probably need to wait and refresh the page for a few minutes before the login page is shown.
Expand All @@ -91,16 +105,16 @@ In order for all the tests to pass, you will need to create a new (empty) projec
$ make testacc
```

Sample Terraform configuration
------------------------------
Sample Terraform configuration when testing locally
------------------------------------------------------------
Below is an example configuration to initialize provider and create a Virtual Machine instance

```sh
$ cat provider.tf
terraform {
required_providers {
cloudstack = {
source = "cloudstack/cloudstack"
source = "localdomain/provider/cloudstack"
Copy link
Contributor

@harikrishna-patnala harikrishna-patnala Feb 24, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The previous one worked when I was testing locally @kiranchavala , may you want to add what localdomain/provider means ?

Copy link
Collaborator Author

@kiranchavala kiranchavala Feb 24, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@harikrishna-patnala

after building the terraform provider locally using "make build", the generated go binary will contain the new code changes

To test the changes we have to use
source = "localdomain/provider/cloudstack

If we use " source "cloudstack/cloudstack" ,

when "terraform init" is called terraform will download the binary from terraform registry https://registry.terraform.io/providers/cloudstack/cloudstack/latest

and place it /.terraform.d/plugins/registry.terraform.io/cloudstack/cloudstack/0.4.0/linux_amd64/terraform-provider-cloudstack_v0.4.0/

If replace the binary with the binary we had built in the same path and do a "terraform apply" , you will encounter a checksum error as terraform.lock.hcl will be different

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks @kiranchavala I used to delete the lock file to test my changes, so that way it worked.

version = "0.4.0"
}
}
Expand Down