diff --git a/core/headscale/controller/Dockerfile b/core/headscale/controller/Dockerfile
index 5a355c2..b3158b2 100644
--- a/core/headscale/controller/Dockerfile
+++ b/core/headscale/controller/Dockerfile
@@ -15,7 +15,7 @@
 COPY controllers/ controllers/
 
 # Build
-RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -o manager main.go
+RUN CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -a -o manager main.go
 
 # Use distroless as minimal base image to package the manager binary
 # Refer to https://github.com/GoogleContainerTools/distroless for more details
diff --git a/core/headscale/controller/Makefile b/core/headscale/controller/Makefile
index f43f9a3..e1f6077 100644
--- a/core/headscale/controller/Makefile
+++ b/core/headscale/controller/Makefile
@@ -1,6 +1,6 @@
 
 # Image URL to use all building/pushing image targets
-IMG ?= controller:latest
+IMG ?= giolekva/headscale-controller:latest
 # ENVTEST_K8S_VERSION refers to the version of kubebuilder assets to be downloaded by envtest binary.
 ENVTEST_K8S_VERSION = 1.24.2
 
@@ -70,11 +70,11 @@
 
 .PHONY: docker-build
 docker-build: test ## Build docker image with the manager.
-	docker build -t ${IMG} .
+	podman build -t ${IMG} .
 
 .PHONY: docker-push
 docker-push: ## Push docker image with the manager.
-	docker push ${IMG}
+	podman push ${IMG}
 
 ##@ Deployment
 
@@ -130,3 +130,7 @@
 envtest: $(ENVTEST) ## Download envtest-setup locally if necessary.
 $(ENVTEST): $(LOCALBIN)
 	test -s $(LOCALBIN)/setup-envtest || GOBIN=$(LOCALBIN) go install sigs.k8s.io/controller-runtime/tools/setup-envtest@latest
+
+generate-helm-chart: manifests kustomize
+	cd config/manager && $(KUSTOMIZE) edit set image controller=${IMG}
+	$(KUSTOMIZE) build config/default | sed 's/: controller-system/: {{ .Release.Namespace }}/g' > ../../../charts/headscale-controller/templates/install.yaml
diff --git a/core/headscale/controller/api/v1/headscaleuser_types.go b/core/headscale/controller/api/v1/headscaleuser_types.go
index aa9162f..146388d 100644
--- a/core/headscale/controller/api/v1/headscaleuser_types.go
+++ b/core/headscale/controller/api/v1/headscaleuser_types.go
@@ -33,8 +33,9 @@
 	// INSERT ADDITIONAL SPEC FIELDS - desired state of cluster
 	// Important: Run "make" to regenerate code after modifying this file
 
-	Name       string     `json:"name,omitempty"`
-	PreAuthKey PreAuthKey `json:"preAuthKey,omitempty"`
+	HeadscaleAddress string     `json:"headscaleAddress,omitempty"`
+	Name             string     `json:"name,omitempty"`
+	PreAuthKey       PreAuthKey `json:"preAuthKey,omitempty"`
 }
 
 // HeadscaleUserStatus defines the observed state of HeadscaleUser
diff --git a/core/headscale/controller/config/crd/bases/headscale.dodo.cloud_headscaleusers.yaml b/core/headscale/controller/config/crd/bases/headscale.dodo.cloud_headscaleusers.yaml
index c64333e..bc812b3 100644
--- a/core/headscale/controller/config/crd/bases/headscale.dodo.cloud_headscaleusers.yaml
+++ b/core/headscale/controller/config/crd/bases/headscale.dodo.cloud_headscaleusers.yaml
@@ -35,6 +35,8 @@
           spec:
             description: HeadscaleUserSpec defines the desired state of HeadscaleUser
             properties:
+              headscaleAddress:
+                type: string
               name:
                 type: string
               preAuthKey:
diff --git a/core/headscale/controller/config/manager/kustomization.yaml b/core/headscale/controller/config/manager/kustomization.yaml
index 2bcd3ee..1d95deb 100644
--- a/core/headscale/controller/config/manager/kustomization.yaml
+++ b/core/headscale/controller/config/manager/kustomization.yaml
@@ -5,6 +5,12 @@
   disableNameSuffixHash: true
 
 configMapGenerator:
-- name: manager-config
-  files:
+- files:
   - controller_manager_config.yaml
+  name: manager-config
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+images:
+- name: controller
+  newName: giolekva/headscale-controller
+  newTag: latest
diff --git a/core/headscale/controller/controllers/headscaleuser_controller.go b/core/headscale/controller/controllers/headscaleuser_controller.go
index 5f8cd6c..bbd2103 100644
--- a/core/headscale/controller/controllers/headscaleuser_controller.go
+++ b/core/headscale/controller/controllers/headscaleuser_controller.go
@@ -37,26 +37,23 @@
 )
 
 type HeadscaleClient struct {
-	address    string
+	baseUrl    url.URL
 	httpClient *http.Client
 }
 
-func NewHeadscaleClient(address string) *HeadscaleClient {
+func NewHeadscaleClient(baseUrl url.URL) *HeadscaleClient {
 	return &HeadscaleClient{
-		address,
+		baseUrl,
 		&http.Client{},
 	}
 }
 
 func (c *HeadscaleClient) CreateUser(name string) error {
-	fmt.Println(name)
+	reqAddr := c.baseUrl
+	reqAddr.Path = "/user"
 	req := &http.Request{
 		Method: http.MethodPost,
-		URL: &url.URL{
-			Scheme: "http",
-			Host:   c.address,
-			Path:   "/user",
-		},
+		URL:    &reqAddr,
 		Header: map[string][]string{
 			"Content-Type": []string{"application/json"},
 		},
@@ -76,13 +73,11 @@
 }
 
 func (c *HeadscaleClient) CreateReusablePreAuthKey(user string) (string, error) {
+	reqAddr := c.baseUrl
+	reqAddr.Path = fmt.Sprintf("/user/%s/preauthkey", user)
 	req := &http.Request{
 		Method: http.MethodPost,
-		URL: &url.URL{
-			Scheme: "http",
-			Host:   c.address,
-			Path:   fmt.Sprintf("/user/%s/preauthkey", user),
-		},
+		URL:    &reqAddr,
 	}
 	resp, err := c.httpClient.Do(req)
 	if err != nil {
@@ -133,11 +128,16 @@
 	if resource.Status.Ready {
 		return ctrl.Result{}, nil
 	}
-	if err := r.Headscale.CreateUser(resource.Spec.Name); err != nil {
+	baseAddr, err := url.Parse(resource.Spec.HeadscaleAddress)
+	if err != nil {
+		return ctrl.Result{RequeueAfter: time.Minute}, err
+	}
+	headscale := NewHeadscaleClient(*baseAddr)
+	if err := headscale.CreateUser(resource.Spec.Name); err != nil {
 		return ctrl.Result{RequeueAfter: time.Minute}, err
 	}
 	if resource.Spec.PreAuthKey.Enabled {
-		key, err := r.Headscale.CreateReusablePreAuthKey(resource.Spec.Name)
+		key, err := headscale.CreateReusablePreAuthKey(resource.Spec.Name)
 		if err != nil {
 			return ctrl.Result{RequeueAfter: time.Minute}, err
 		}
diff --git a/core/headscale/controller/main.go b/core/headscale/controller/main.go
index c80d56b..e494441 100644
--- a/core/headscale/controller/main.go
+++ b/core/headscale/controller/main.go
@@ -52,13 +52,11 @@
 	var metricsAddr string
 	var enableLeaderElection bool
 	var probeAddr string
-	var headscaleAddr string
 	flag.StringVar(&metricsAddr, "metrics-bind-address", ":8080", "The address the metric endpoint binds to.")
 	flag.StringVar(&probeAddr, "health-probe-bind-address", ":8081", "The address the probe endpoint binds to.")
 	flag.BoolVar(&enableLeaderElection, "leader-elect", false,
 		"Enable leader election for controller manager. "+
 			"Enabling this will ensure there is only one active controller manager.")
-	flag.StringVar(&headscaleAddr, "headscale-api", "headscale-api", "HTTP endpoint pointing to headscale api.")
 	opts := zap.Options{
 		Development: true,
 	}
@@ -92,9 +90,8 @@
 	}
 
 	if err = (&controllers.HeadscaleUserReconciler{
-		Client:    mgr.GetClient(),
-		Scheme:    mgr.GetScheme(),
-		Headscale: controllers.NewHeadscaleClient(headscaleAddr),
+		Client: mgr.GetClient(),
+		Scheme: mgr.GetScheme(),
 	}).SetupWithManager(mgr); err != nil {
 		setupLog.Error(err, "unable to create controller", "controller", "HeadscaleUser")
 		os.Exit(1)
