# Installation of Linkerd failing

**URL:** <https://linkerd.buoyant.io/t/installation-of-linkerd-failing/739>\
**Category:** Linkerd General Discussion\
**Created:** [February 21, 2025, 10:45am UTC](https://linkerd.buoyant.io/t/installation-of-linkerd-failing/739 "2025-02-21T10:45:58Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![ccsalway](https://avatars.discourse-cdn.com/v4/letter/c/839c29/32.png) [@ccsalway](https://linkerd.buoyant.io/u/ccsalway)\
**Post date:** [February 21, 2025, 10:45am UTC](https://linkerd.buoyant.io/t/installation-of-linkerd-failing/739/1 "2025-02-21T10:45:58Z")

</div>

New to Linkerd and as I try to install it following your guide at [Getting Started | Linkerd](https://linkerd.io/2.17/getting-started/), I run `linkerd install --crds | kubectl apply -f -` and I’m presented with an error:

```auto
$ linkerd install --crds | sudo k8s kubectl apply -f -
Rendering Linkerd CRDs...
Next, run `linkerd install | kubectl apply -f -` to install the control plane.

customresourcedefinition.apiextensions.k8s.io/authorizationpolicies.policy.linkerd.io unchanged
customresourcedefinition.apiextensions.k8s.io/egressnetworks.policy.linkerd.io unchanged
customresourcedefinition.apiextensions.k8s.io/httplocalratelimitpolicies.policy.linkerd.io unchanged
customresourcedefinition.apiextensions.k8s.io/httproutes.policy.linkerd.io configured
customresourcedefinition.apiextensions.k8s.io/meshtlsauthentications.policy.linkerd.io unchanged
customresourcedefinition.apiextensions.k8s.io/networkauthentications.policy.linkerd.io unchanged
customresourcedefinition.apiextensions.k8s.io/serverauthorizations.policy.linkerd.io unchanged
customresourcedefinition.apiextensions.k8s.io/servers.policy.linkerd.io unchanged
customresourcedefinition.apiextensions.k8s.io/serviceprofiles.linkerd.io configured
Warning: resource customresourcedefinitions/httproutes.gateway.networking.k8s.io is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.
Warning: resource customresourcedefinitions/grpcroutes.gateway.networking.k8s.io is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.
customresourcedefinition.apiextensions.k8s.io/tlsroutes.gateway.networking.k8s.io configured
customresourcedefinition.apiextensions.k8s.io/tcproutes.gateway.networking.k8s.io configured
customresourcedefinition.apiextensions.k8s.io/externalworkloads.workload.linkerd.io unchanged
Error from server (Invalid): error when applying patch:

```

```auto
Resource: "apiextensions.k8s.io/v1, Resource=customresourcedefinitions", GroupVersionKind: "apiextensions.k8s.io/v1, Kind=CustomResourceDefinition"
Name: "httproutes.gateway.networking.k8s.io", Namespace: ""
for: "STDIN": error when patching "STDIN": CustomResourceDefinition.apiextensions.k8s.io "httproutes.gateway.networking.k8s.io" is invalid: status.storedVersions[0]: Invalid value: "v1": must appear in spec.versions

```

```auto
Resource: "apiextensions.k8s.io/v1, Resource=customresourcedefinitions", GroupVersionKind: "apiextensions.k8s.io/v1, Kind=CustomResourceDefinition"
Name: "grpcroutes.gateway.networking.k8s.io", Namespace: ""
for: "STDIN": error when patching "STDIN": CustomResourceDefinition.apiextensions.k8s.io "grpcroutes.gateway.networking.k8s.io" is invalid: status.storedVersions[0]: Invalid value: "v1": must appear in spec.versions

```

---

<div class="post-metadata">

**Author:** ![ccsalway](https://avatars.discourse-cdn.com/v4/letter/c/839c29/32.png) [@ccsalway](https://linkerd.buoyant.io/u/ccsalway)\
**Post date:** [February 21, 2025, 10:55am UTC](https://linkerd.buoyant.io/t/installation-of-linkerd-failing/739/2 "2025-02-21T10:55:22Z")

</div>

I made the following changes

Under [httproutes.gateway.networking.k8s.io](http://httproutes.gateway.networking.k8s.io): line 6801  
changed `name: v1alpha2` to `name: v1`

Under [grpcroutes.gateway.networking.k8s.io](http://grpcroutes.gateway.networking.k8s.io): line 10678  
changed `name: v1alpha2` to `name: v1`

and that now runs.

---

<div class="post-metadata">

**Author:** ![Alex](https://yyz1.discourse-cdn.com/flex029/user_avatar/linkerd.buoyant.io/alex/32/63_2.png) [@Alex](https://linkerd.buoyant.io/u/Alex)\
**Post date:** [February 26, 2025, 11:32pm UTC](https://linkerd.buoyant.io/t/installation-of-linkerd-failing/739/3 "2025-02-26T23:32:44Z")

</div>

It sounds like you already have the gateway API CRDs installed on your cluster and are encountering a conflict when Linkerd tries to install them. You should use the `--set enableHttpRoutes=false` flag to tell Linkerd to not install these CRDs since they are already present on your cluster. See [Gateway API support | Linkerd](https://linkerd.io/2-edge/features/gateway-api/#option-2-a-different-tool-manages-the-gateway-api) for details.
