Instana is an APM solution built for microservices that enables IT Ops to build applications faster and deliver higher quality services by automating monitoring, tracing and root cause analysis. The solution is optimized for Kubernetes and OpenShift.
This repository contains the Kubernetes Operator to install and manage the Instana agent.
There are two ways to install the operator:
IMPORTANT NOTE For the conversion Mutating WebHook, converting older v1beta1
Specs to v1
Spec, the Cert-Manager needs to
be installed (unless using OLM). See the Cert Manager docs for how to
install and configure the Cert-Manager properly.
Alternatively, every release will include the instana-agent-operator-no-conversion-webhook.yaml variant for easily installing the Operator without the conversion WebHook.
This documentation section describes configuration options you can set via the Instana Agent CRD and environment variables.
- docs/build.md describes how to build the Docker image from source code.
- docs/testing-with-kind.md shows how to test the operator in a local Kind cluster.
- docs/run-operator-registry-locally.md describes how to set up a local Operator Lifecycle Manager and Registry to test the OLM deployment locally.
Please see the guidelines in CONTRIBUTING.md.
Developing (and running) the Operator is possible in two easy ways:
- Running as Go application outside the Cluster
- Running as Deployment inside the Cluster
Both are described below.
- Create a copy of the file
config/samples/instana_v1_instanaagent.yaml
, for the below steps we're assumingconfig/samples/instana_v1_instanaagent_demo.yaml.yaml
- In this file, put correct values for e.g. the Agent
key
,endpointHost
andendpointPort
. - Install the CRD and run the Go application:
make install run
. - Deploy the custom resource earlier created using
kubectl apply -f config/samples/instana_v1_instanaagent_demo.yaml
To stop, take the following actions:
kubectl delete -f config/samples/instana_v1_instanaagent_demo.yaml
make uninstall
The Instana Agent Operator can be developed and tested easily against a local Minikube cluster or any other configured Kubernetes cluster. Therefore, follow the below steps:
- Create a copy of the file
config/samples/instana_v1_instanaagent.yaml
, for the below steps we're assumingconfig/samples/instana_v1_instanaagent_demo.yaml.yaml
- In this file, put correct values for e.g. the Agent
key
,endpointHost
andendpointPort
. - Build the Operator image:
make docker-build
- For deploying on Minikube, there's a convenient target
make deploy-minikube
. For any other environment you would need to first push the Docker image to a valid repository usingmake docker-push
, then do the deployment usingmake deploy
to deploy the Operator to the cluster configured forkubectl
. - Deploy the custom resource earlier created using
kubectl apply -f config/samples/instana_v1_instanaagent_demo.yaml.yaml
Now you should have a successful running Operator. To remove the Operator again, run:
kubectl delete -f config/samples/instana_v1_instanaagent_demo.yaml.yaml
make undeploy
.