Base Library for Go-based Cloud Foundry Buildpack integrations with Dynatrace.
The library provides the Hook
struct that implements the libbuildpack.Hook
interface that it's requested by the CF Buildpacks.
On the buildpacks, you're expected to provide a hook through a init()
function where you can register such hook implementation. For example, a simple implementation could be,
import (
"github.com/cloudfoundry/libbuildpack"
"github.com/Dynatrace/libbuildpack-dynatrace"
)
func init() {
libbuildpack.AddHook(dynatrace.NewHook("nodejs", "process"))
}
The Hook will look for credentials in the configurations for existing services (which is represented in the runtime as the VCAP_SERVICES environment variable in JSON format.) We look for service names having the 'dynatrace' substring.
We support the following configuration fields,
Key | Type | Description | Required | Default |
---|---|---|---|---|
environmentid | string | The ID for the Dynatrace environment. | Yes | N/A |
apitoken | string | The API Token for the Dynatrace environment. | Yes | N/A |
apiurl | string | Overrides the default Dynatrace API URL to connect to. | No | Default API URL |
skiperrors | boolean | If true, the deployment doesn't fail if the Dynatrace agent download fails. | No | false |
networkzone | string | If set, agent is configured to choose communication endpoints located at the field's value. | No | empty |
enablefips | boolean | If true, the FIPS 140-2 mode is enabled | No | false |
addtechnologies | string | Adds additional OneAgent code-modules via a comma-separated list. See supported values in the "included" row | No | empty |
For example,
cf create-user-provided-service dynatrace -p '{"environmentid":"...","apitoken":"..."}'
See more at the documentation for cf create-user-provided-service
.
We also support standard Dynatrace environment variables.
- Go 1.11
- Linux to run the tests.
You can download or clone the repository.
You can run tests through,
go test
If you modify/add interfaces, you may need to regenerate the mocks. For this you need gomock:
# To download Gomock
go get github.com/golang/mock/gomock
go install github.com/golang/mock/mockgen
# To generate the mocks
go generate