From bb844bb0c6ff618dbbf708855f659a36b7811e2f Mon Sep 17 00:00:00 2001 From: Ashleigh Brennan <40172997+abrennan89@users.noreply.github.com> Date: Wed, 3 Mar 2021 11:03:15 -0600 Subject: [PATCH] Follow up install doc improvements (#3305) * Follow up install doc improvements * updated to -f, custom resources as per kube docs * added missing verb --- docs/install/_index.md | 2 +- docs/install/any-kubernetes-cluster.md | 86 +++++++++++++------------- docs/install/knative-with-operators.md | 25 ++------ 3 files changed, 48 insertions(+), 65 deletions(-) diff --git a/docs/install/_index.md b/docs/install/_index.md index 7b9ade0c1..8fe69e70e 100644 --- a/docs/install/_index.md +++ b/docs/install/_index.md @@ -13,7 +13,7 @@ You can install the Serving component, Eventing component, or both on your clust You can also [upgrade an existing Knative installation](./upgrade-installation). -**NOTE:** Currently Knative instructions are only provided for Mac and Linux environments. +**NOTE:** Knative installation instructions assume you are running Mac or Linux with a bash shell. ## Next steps diff --git a/docs/install/any-kubernetes-cluster.md b/docs/install/any-kubernetes-cluster.md index 158c8f576..f693ec3e8 100644 --- a/docs/install/any-kubernetes-cluster.md +++ b/docs/install/any-kubernetes-cluster.md @@ -24,25 +24,25 @@ You can install Knative by applying YAML files using the `kubectl` CLI. ## Prerequisites -- You have a cluster that uses Kubernetes v1.17 or newer. +- You have a cluster that uses Kubernetes v1.18 or newer. - You have installed the [`kubectl` CLI](https://kubernetes.io/docs/tasks/tools/install-kubectl/). - If you have only one node in your cluster, you will need at least 6 CPUs, 6 GB of memory, and 30 GB of disk storage. - If you have multiple nodes in your cluster, for each node you will need at least 2 CPUs, 4 GB of memory, and 20 GB of disk storage. + +- Your Kubernetes cluster must have access to the internet, since Kubernetes needs to be able to fetch images. ## Installing the Serving component -1. Install the - [Custom Resource Definitions](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) - (aka CRDs): +1. Install the required custom resources: ```bash - kubectl apply --filename {{< artifact repo="serving" file="serving-crds.yaml" >}} + kubectl apply -f {{< artifact repo="serving" file="serving-crds.yaml" >}} ``` 1. Install the core components of Serving (see below for optional extensions): ```bash - kubectl apply --filename {{< artifact repo="serving" file="serving-core.yaml" >}} + kubectl apply -f {{< artifact repo="serving" file="serving-core.yaml" >}} ``` 1. Pick a networking layer (alphabetical): @@ -66,9 +66,9 @@ The following commands install Ambassador and enable its Knative integration. ```bash kubectl apply --namespace ambassador \ - --filename https://getambassador.io/yaml/ambassador/ambassador-crds.yaml \ - --filename https://getambassador.io/yaml/ambassador/ambassador-rbac.yaml \ - --filename https://getambassador.io/yaml/ambassador/ambassador-service.yaml + -f https://getambassador.io/yaml/ambassador/ambassador-crds.yaml \ + -f https://getambassador.io/yaml/ambassador/ambassador-rbac.yaml \ + -f https://getambassador.io/yaml/ambassador/ambassador-service.yaml ``` 1. Give Ambassador the required permissions: @@ -109,7 +109,7 @@ The following commands install Contour and enable its Knative integration. 1. Install a properly configured Contour: ```bash - kubectl apply --filename {{< artifact repo="net-contour" file="contour.yaml" >}} + kubectl apply -f {{< artifact repo="net-contour" file="contour.yaml" >}} ``` @@ -117,7 +117,7 @@ The following commands install Contour and enable its Knative integration. 1. Install the Knative Contour controller: ```bash - kubectl apply --filename {{< artifact repo="net-contour" file="net-contour.yaml" >}} + kubectl apply -f {{< artifact repo="net-contour" file="net-contour.yaml" >}} ``` 1. To configure Knative Serving to use Contour by default: @@ -186,14 +186,14 @@ The following commands install Istio and enable its Knative integration. 1. Install a properly configured Istio ([Advanced installation](./installing-istio.md)) ```bash - kubectl apply --filename {{< artifact repo="net-istio" file="istio.yaml" >}} + kubectl apply -f {{< artifact repo="net-istio" file="istio.yaml" >}} ``` 1. Install the Knative Istio controller: ```bash - kubectl apply --filename {{< artifact repo="net-istio" file="net-istio.yaml" >}} + kubectl apply -f {{< artifact repo="net-istio" file="net-istio.yaml" >}} ``` 1. Fetch the External IP or CNAME: @@ -213,7 +213,7 @@ The following commands install Kong and enable its Knative integration. 1. Install Kong Ingress Controller: ```bash - kubectl apply --filename https://raw.githubusercontent.com/Kong/kubernetes-ingress-controller/0.9.x/deploy/single/all-in-one-dbless.yaml + kubectl apply -f https://raw.githubusercontent.com/Kong/kubernetes-ingress-controller/0.9.x/deploy/single/all-in-one-dbless.yaml ``` 1. To configure Knative Serving to use Kong by default: @@ -242,7 +242,7 @@ The following commands install Kourier and enable its Knative integration. 1. Install the Knative Kourier controller: ```bash - kubectl apply --filename {{< artifact repo="net-kourier" file="kourier.yaml" >}} + kubectl apply -f {{< artifact repo="net-kourier" file="kourier.yaml" >}} ``` 1. To configure Knative Serving to use Kourier by default: @@ -276,7 +276,7 @@ configure Knative Serving to use xip.io as the default DNS suffix. ```bash -kubectl apply --filename {{< artifact repo="serving" file="serving-default-domain.yaml" >}} +kubectl apply -f {{< artifact repo="serving" file="serving-default-domain.yaml" >}} ``` **Caveat**: This will only work if the cluster LoadBalancer service exposes an @@ -385,7 +385,7 @@ for driving autoscaling decisions. The following command will install the components needed to support HPA-class autoscaling: ```bash -kubectl apply --filename {{< artifact repo="serving" file="serving-hpa.yaml" >}} +kubectl apply -f {{< artifact repo="serving" file="serving-hpa.yaml" >}} ``` @@ -405,7 +405,7 @@ via cert-manager. 2. Next, install the component that integrates Knative with cert-manager: ```bash - kubectl apply --filename {{< artifact repo="net-certmanager" file="release.yaml" >}} + kubectl apply -f {{< artifact repo="net-certmanager" file="release.yaml" >}} ``` 3. Now configure Knative to @@ -421,7 +421,7 @@ support that. 1. First, install the `net-http01` controller: ```bash - kubectl apply --filename {{< artifact repo="net-http01" file="release.yaml" >}} + kubectl apply -f {{< artifact repo="net-http01" file="release.yaml" >}} ``` 2. Next, configure the `certificate.class` to use this certificate type. @@ -453,7 +453,7 @@ certificate controller. The following command will install the components needed to provision wildcard certificates in each namespace: ```bash -kubectl apply --filename {{< artifact repo="serving" file="serving-nscert.yaml" >}} +kubectl apply -f {{< artifact repo="serving" file="serving-nscert.yaml" >}} ``` > Note this will not work with HTTP01 either via cert-manager or the net-http01 @@ -467,27 +467,25 @@ The `DomainMapping` CRD allows a user to map a Domain Name that they own to a specific Knative Service. ```bash -kubectl apply --filename {{< artifact repo="serving" file="serving-domainmapping-crds.yaml" >}} +kubectl apply -f {{< artifact repo="serving" file="serving-domainmapping-crds.yaml" >}} kubectl wait --for=condition=Established --all crd -kubectl apply --filename {{< artifact repo="serving" file="serving-domainmapping.yaml" >}} +kubectl apply -f {{< artifact repo="serving" file="serving-domainmapping.yaml" >}} ``` {{< /tab >}} {{< /tabs >}} ## Installing the Eventing component -1. Install the - [Custom Resource Definitions](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) - (aka CRDs): +1. Install the required custom resources: ```bash - kubectl apply --filename {{< artifact repo="eventing" file="eventing-crds.yaml" >}} + kubectl apply -f {{< artifact repo="eventing" file="eventing-crds.yaml" >}} ``` 1. Install the core components of Eventing (see below for optional extensions): ```bash - kubectl apply --filename {{< artifact repo="eventing" file="eventing-core.yaml" >}} + kubectl apply -f {{< artifact repo="eventing" file="eventing-core.yaml" >}} ``` _Note_: If your Kubernetes cluster comes with pre-installed Istio, make sure @@ -512,7 +510,7 @@ kubectl apply --filename {{< artifact repo="serving" file="serving-domainmapping ```bash curl -L "{{< artifact org="knative-sandbox" repo="eventing-kafka" file="channel-consolidated.yaml" >}}" \ | sed 's/REPLACE_WITH_CLUSTER_URL/my-cluster-kafka-bootstrap.kafka:9092/' \ - | kubectl apply --filename - + | kubectl apply -f - ``` To learn more about the Apache Kafka channel, try @@ -526,7 +524,7 @@ To learn more about the Apache Kafka channel, try ```bash # This installs both the Channel and the GCP Sources. - kubectl apply --filename {{< artifact org="google" repo="knative-gcp" file="cloud-run-events.yaml" >}} + kubectl apply -f {{< artifact org="google" repo="knative-gcp" file="cloud-run-events.yaml" >}} ``` To learn more about the Google Cloud Pub/Sub Channel, try @@ -541,7 +539,7 @@ This implementation is nice because it is simple and standalone, but it is unsuitable for production use cases. ```bash -kubectl apply --filename {{< artifact repo="eventing" file="in-memory-channel.yaml" >}} +kubectl apply -f {{< artifact repo="eventing" file="in-memory-channel.yaml" >}} ``` {{< /tab >}} @@ -554,7 +552,7 @@ kubectl apply --filename {{< artifact repo="eventing" file="in-memory-channel.ya 1. Then install the NATS Streaming Channel: ```bash - kubectl apply --filename {{< artifact org="knative-sandbox" repo="eventing-natss" file="300-natss-channel.yaml" >}} + kubectl apply -f {{< artifact org="knative-sandbox" repo="eventing-natss" file="300-natss-channel.yaml" >}} ``` {{< /tab >}} @@ -575,13 +573,13 @@ The following commands install the Apache Kafka broker, and run event routing in 1. Install the Kafka controller by entering the following command: ```bash - kubectl apply --filename {{< artifact org="knative-sandbox" repo="eventing-kafka-broker" file="eventing-kafka-controller.yaml" >}} + kubectl apply -f {{< artifact org="knative-sandbox" repo="eventing-kafka-broker" file="eventing-kafka-controller.yaml" >}} ``` 1. Install the Kafka Broker data plane by entering the following command: ```bash - kubectl apply --filename {{< artifact org="knative-sandbox" repo="eventing-kafka-broker" file="eventing-kafka-broker.yaml" >}} + kubectl apply -f {{< artifact org="knative-sandbox" repo="eventing-kafka-broker" file="eventing-kafka-broker.yaml" >}} ``` For more information, see the [Kafka Broker](./../eventing/broker/kafka-broker.md) documentation. @@ -594,7 +592,7 @@ Channels and runs event routing components in a System Namespace, providing a smaller and simpler installation. ```bash -kubectl apply --filename {{< artifact repo="eventing" file="mt-channel-broker.yaml" >}} +kubectl apply -f {{< artifact repo="eventing" file="mt-channel-broker.yaml" >}} ``` To customize which broker channel implementation is used, update the following @@ -683,13 +681,13 @@ At this point, you have a basic installation of Knative Eventing! 1. Install the Kafka controller: ```bash - kubectl apply --filename {{< artifact org="knative-sandbox" repo="eventing-kafka-broker" file="eventing-kafka-controller.yaml" >}} + kubectl apply -f {{< artifact org="knative-sandbox" repo="eventing-kafka-broker" file="eventing-kafka-controller.yaml" >}} ``` 1. Install the Kafka Sink data plane: ```bash - kubectl apply --filename {{< artifact org="knative-sandbox" repo="eventing-kafka-broker" file="eventing-kafka-sink.yaml" >}} + kubectl apply -f {{< artifact org="knative-sandbox" repo="eventing-kafka-broker" file="eventing-kafka-sink.yaml" >}} ``` For more information, see the [Kafka Sink](./../eventing/sink/kafka-sink.md) documentation. @@ -703,7 +701,7 @@ For more information, see the [Kafka Sink](./../eventing/sink/kafka-sink.md) doc The following command installs the Eventing Sugar Controller: ```bash -kubectl apply --filename {{< artifact repo="eventing" file="eventing-sugar-controller.yaml" >}} +kubectl apply -f {{< artifact repo="eventing" file="eventing-sugar-controller.yaml" >}} ``` The Knative Eventing Sugar Controller will react to special labels and @@ -729,7 +727,7 @@ kubectl label namespace default eventing.knative.dev/injection=enabled The following command installs the single-tenant Github source: ```bash -kubectl apply --filename {{< artifact org="knative-sandbox" repo="eventing-github" file="github.yaml" >}} +kubectl apply -f {{< artifact org="knative-sandbox" repo="eventing-github" file="github.yaml" >}} ``` The single-tenant GitHub source creates one Knative service per GitHub source. @@ -737,7 +735,7 @@ The single-tenant GitHub source creates one Knative service per GitHub source. The following command installs the multi-tenant GitHub source: ```bash -kubectl apply --filename {{< artifact org="knative-sandbox" repo="eventing-github" file="mt-github.yaml" >}} +kubectl apply -f {{< artifact org="knative-sandbox" repo="eventing-github" file="mt-github.yaml" >}} ``` The multi-tenant GitHub source creates only one Knative service handling all @@ -754,7 +752,7 @@ To learn more about the Github source, try The following command installs the Apache Camel-K Source: ```bash -kubectl apply --filename {{< artifact org="knative-sandbox" repo="eventing-camel" file="camel.yaml" >}} +kubectl apply -f {{< artifact org="knative-sandbox" repo="eventing-camel" file="camel.yaml" >}} ``` To learn more about the Apache Camel-K source, try @@ -767,7 +765,7 @@ To learn more about the Apache Camel-K source, try The following command installs the Apache Kafka Source: ```bash -kubectl apply --filename {{< artifact org="knative-sandbox" repo="eventing-kafka" file="source.yaml" >}} +kubectl apply -f {{< artifact org="knative-sandbox" repo="eventing-kafka" file="source.yaml" >}} ``` To learn more about the Apache Kafka source, try @@ -781,7 +779,7 @@ The following command installs the GCP Sources: ```bash # This installs both the Sources and the Channel. -kubectl apply --filename {{< artifact org="google" repo="knative-gcp" file="cloud-run-events.yaml" >}} +kubectl apply -f {{< artifact org="google" repo="knative-gcp" file="cloud-run-events.yaml" >}} ``` To learn more about the Cloud Pub/Sub source, try @@ -803,7 +801,7 @@ To learn more about the Cloud Audit Logs source, try The following command installs the Apache CouchDB Source: ```bash -kubectl apply --filename {{< artifact org="knative-sandbox" repo="eventing-couchdb" file="couchdb.yaml" >}} +kubectl apply -f {{< artifact org="knative-sandbox" repo="eventing-couchdb" file="couchdb.yaml" >}} ``` To learn more about the Apache CouchDB source, read the [documentation](https://github.com/knative-sandbox/eventing-couchdb/blob/master/source/README.md). @@ -815,7 +813,7 @@ To learn more about the Apache CouchDB source, read the [documentation](https:// The following command installs the VMware Sources and Bindings: ```bash -kubectl apply --filename {{< artifact org="vmware-tanzu" repo="sources-for-knative" file="release.yaml" >}} +kubectl apply -f {{< artifact org="vmware-tanzu" repo="sources-for-knative" file="release.yaml" >}} ``` To learn more about the VMware sources and bindings, try diff --git a/docs/install/knative-with-operators.md b/docs/install/knative-with-operators.md index 75822c6d6..c061a06e3 100644 --- a/docs/install/knative-with-operators.md +++ b/docs/install/knative-with-operators.md @@ -12,39 +12,24 @@ for development or test purposes only. ## Prerequisites -- You have a cluster that uses Kubernetes v1.17 or newer. +- You have a cluster that uses Kubernetes v1.18 or newer. - You have installed the `kubectl` CLI. - If you have only one node in your cluster, you will need at least 6 CPUs, 6 GB of memory, and 30 GB of disk storage. - If you have multiple nodes in your cluster, for each node you will need at least 2 CPUs, 4 GB of memory, and 20 GB of disk storage. -- Your Kubernetes cluster must have access to the internet, since the Knative Operator must download images. +- Your Kubernetes cluster must have access to the internet, since Kubernetes needs to be able to fetch images, such as `gcr.io/knative-releases/knative.dev/operator/cmd/operator:`. + - You have installed [Istio](./installing-istio.md). ## Installing the latest release -You can find the release information about the Knative Operator on the [Releases page](https://github.com/knative/operator/releases). +You can find information about the different released versions of the Knative Operator on the [Releases page](https://github.com/knative/operator/releases). -To install the latest stable Operator release, enter: +Install the latest stable Operator release: ``` kubectl apply -f {{< artifact org="knative" repo="operator" file="operator.yaml" >}} ``` -## Installing from source - -You can install the Knative Operator from the source code using the [ko](https://github.com/google/ko) build tool. - -1. Download the source code: - - ``` - git clone https://github.com/knative/operator.git - ``` - -1. Install the Operator in the root directory of the source: - - ``` - ko apply -f config/ - ``` - ## Verify your installation Verify your installation: