This is an automated email from the ASF dual-hosted git repository. alinsran pushed a commit to branch v2.0.0 in repository https://gitbox.apache.org/repos/asf/apisix-ingress-controller.git
commit 5d20cec8d329a039edc0ecc93ea0cdfe4ac7d80b Author: AlinsRan <alins...@apache.org> AuthorDate: Thu Jul 3 13:49:11 2025 +0800 docs: add install and developer-guide doc (#2439) --- docs/en/latest/developer-guide.md | 118 ++++++++++++++++++++++++++++++++++++++ docs/en/latest/install.md | 62 ++++++++++++++++++++ 2 files changed, 180 insertions(+) diff --git a/docs/en/latest/developer-guide.md b/docs/en/latest/developer-guide.md new file mode 100644 index 00000000..90fdacc7 --- /dev/null +++ b/docs/en/latest/developer-guide.md @@ -0,0 +1,118 @@ +--- +title: Developer Guide +keywords: + - APISIX ingress + - Apache APISIX + - Kubernetes ingress + - Development + - Contribute +description: Setting up development environment for APISIX Ingress controller. +--- +<!-- +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +--> + +This document walks through how you can set up your development environment to contribute to APISIX Ingress controller. + +## Prerequisites + +Before you get started make sure you have: + +1. Installed [Go 1.23](https://golang.org/dl/) or later +2. A Kubernetes cluster available. We recommend using [kind](https://kind.sigs.k8s.io/). +3. Installed APISIX in Kubernetes using [Helm](https://github.com/apache/apisix-helm-chart). +4. Installed [ADC v0.20.0+](https://github.com/api7/adc/releases) + +## Fork and clone + +1. Fork the repository [apache/apisix-ingress-controller](https://github.com/apache/apisix-ingress-controller) to your GitHub account +2. Clone the fork to your workstation. +3. Run `go mod download` to download the required modules. + +:::tip + +If you are in China, you can speed up the downloads by setting `GOPROXY` to `https://goproxy.cn`. + +::: + +## Install CRD and Gateway API + +To install the [CRD](./concepts/resources.md#apisix-ingress-controller-crds-api) and [Gateway API](https://gateway-api.sigs.k8s.io/), run the following commands: + +```shell +make install +``` + +## Build from source + +To build APISIX Ingress controller, run the command below on the root of the project: + +```shell +make build +``` + +Now you can run it by: + +```shell +# for ARM64 architecture, use the following command: +# ./bin/apisix-ingress-controller_arm64 version +./bin/apisix-ingress-controller_amd64 version +``` + +## Building Image + +To build a Docker image for APISIX Ingress controller, you can use the following command: + +```shell +make build-image IMG=apache/apisix-ingress-controller:dev +``` + +## Running tests + +### Unit Tests + +To run unit tests: + +```shell +make unit-test +``` + +### e2e Tests + +To run end-to-end tests, you need to install [kind](https://kind.sigs.k8s.io/). + +Launch a kind cluster with the following command: + +```shell +make kind-up +``` + +To run end-to-end e2e-tests against any changes, you need to load the built Docker images into the Kubernetes cluster: + +```shell +# build docker image for APISIX Ingress controller +make build-image +# load the image into kind cluster +make kind-load-images +``` + +Currently, we use Kind version `0.26.0` and Kubernetes version `1.26+` for running the tests. + +```shell +make e2e-test +``` diff --git a/docs/en/latest/install.md b/docs/en/latest/install.md new file mode 100644 index 00000000..ff271748 --- /dev/null +++ b/docs/en/latest/install.md @@ -0,0 +1,62 @@ +--- +title: Install with Helm +keywords: + - APISIX ingress + - Apache APISIX + - Kubernetes ingress + - kind +description: Guide to install APISIX ingress controller on kind. +--- +<!-- +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +--> + +Helm is a package manager for Kubernetes that automates the release and management of software on Kubernetes. + +This document guides you through installing the APISIX ingress controller using Helm. + +## Prerequisites + +Before installing APISIX ingress controller, ensure you have: + +1. A working Kubernetes cluster (version 1.26+) + - Production: TKE, EKS, AKS, or other cloud-managed clusters + - Development: minikube, kind, or k3s +2. [kubectl](https://kubernetes.io/docs/tasks/tools/) installed and configured to access your cluster +3. [Helm](https://helm.sh/) (version 3.8+) installed + +## Install APISIX Ingress Controller + +The APISIX ingress controller can be installed using the Helm chart provided by the Apache APISIX project. The following steps will guide you through the installation process. + +```shell +helm repo add apisix https://charts.apiseven.com +helm repo add bitnami https://charts.bitnami.com/bitnami +helm repo update + +# Set the access address and adminkey for apisix +helm install apisix-ingress-controller \ + --create-namespace \ + -n ingress-apisix \ + --set gatewayProxy.createDefault=true \ + --set gatewayProxy.provider.controlPlane.auth.adminKey.value=edd1c9f034335f136f87ad84b625c8f1 \ + --set apisix.adminService.namespace=apisix-ingress \ + --set apisix.adminService.name=apisix-admin \ + --set apisix.adminService.port=9180 \ + apisix/apisix-ingress-controller +```