Skip to content

Commit

Permalink
[GEP-21] Document dev setup options for IPv6 (gardener#7381)
Browse files Browse the repository at this point in the history
* Drop outdated documentation of local setup

The limitation does not hold true anymore, you can use gardener without any real infrastructure.
Also, helm is installed on the fly.

* Clone command if you haven't set GOPATH explicitly

* Add links to dev-box-gcp repository

* Nits
  • Loading branch information
timebertt authored Jan 25, 2023
1 parent 7dbfcc2 commit 3ba69b2
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 17 deletions.
12 changes: 12 additions & 0 deletions docs/deployment/getting_started_locally.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,18 @@ Based on [Skaffold](https://skaffold.dev/), the container images for all require

![Architecture Diagram](content/getting_started_locally.png)

## Alternatives

When deploying Gardener on your local machine you might face several limitations:

- Your machine doesn't have enough compute resources (see [prerequisites](#prerequisites)) for hosting a second seed cluster or multiple shoot clusters.
- Testing Gardener's [IPv6 features](../usage/ipv6.md) requires a Linux machine and native IPv6 connectivity to the internet, but you're on macOS or don't have IPv6 connectivity in your office environment or via your home ISP.

In these cases, you might want to check out one of the following options that run the setup described in this guide elsewhere for circumventing these limitations:

- [remote local setup](../development/getting_started_locally.md#remote-local-setup): deploy on a remote pod for more compute resources
- [dev box on Google Cloud](https://github.com/gardener-community/dev-box-gcp): deploy on a Google Cloud machine for more compute resource and/or simple IPv4/IPv6 dual-stack networking

## Prerequisites

- Make sure that you have followed the [Local Setup guide](../development/local_setup.md) up until the [Get the sources](../development/local_setup.md#get-the-sources) step.
Expand Down
14 changes: 13 additions & 1 deletion docs/development/getting_started_locally.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Running Gardener locally
# Developing Gardener Locally

This document will walk you through running Gardener on your local machine for development purposes.
If you encounter difficulties, please open an issue so that we can make this process easier.
Expand All @@ -10,6 +10,18 @@ The Gardener components, however, will be run as regular processes on your machi

![Architecture Diagram](content/getting_started_locally.png)

## Alternatives

When developing Gardener on your local machine you might face several limitations:

- Your machine doesn't have enough compute resources (see [prerequisites](#prerequisites)) for hosting a second seed cluster or multiple shoot clusters.
- Developing Gardener's [IPv6 features](../usage/ipv6.md) requires a Linux machine and native IPv6 connectivity to the internet, but you're on macOS or don't have IPv6 connectivity in your office environment or via your home ISP.

In these cases, you might want to check out one of the following options that run the setup described in this guide elsewhere for circumventing these limitations:

- [remote local setup](#remote-local-setup): develop on a remote pod for more compute resources
- [dev box on Google Cloud](https://github.com/gardener-community/dev-box-gcp): develop on a Google Cloud machine for more compute resource and/or simple IPv4/IPv6 dual-stack networking

## Prerequisites

- Make sure that you have followed the [Local Setup guide](./local_setup.md) up until the [Get the sources](./local_setup.md#get-the-sources) step.
Expand Down
18 changes: 2 additions & 16 deletions docs/development/local_setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,6 @@ This guide is split into three main parts:
* [Building and starting Gardener components locally](#start-gardener-locally)
* [Using your local Gardener setup to create a Shoot](#create-a-shoot)

## Limitations of the Local Development Setup

You can run Gardener (API server, controller manager, scheduler, gardenlet) against any local Kubernetes cluster, however, your seed and shoot clusters must be deployed to a cloud provider.
Currently, it is not possible to run Gardener entirely isolated from any cloud provider. This means that to be able create Shoot clusters you need to register an external Seed cluster (e.g., one created in AWS).

# Preparing the Setup

## [macOS only] Installing homebrew
Expand Down Expand Up @@ -62,15 +57,6 @@ brew install kubernetes-cli

For other OS, please check the [kubectl installation documentation](https://kubernetes.io/docs/tasks/tools/install-kubectl/).

## Installing helm
You also need the [Helm](https://github.com/kubernetes/helm) CLI. On macOS run

```bash
brew install helm
```

For other OS please check the [Helm installation documentation](https://helm.sh/docs/intro/install/).

## Installing Docker

You need to have docker installed and running. On macOS run
Expand Down Expand Up @@ -138,8 +124,8 @@ The Gardener repository and all the above-mentioned tools (git, golang, kubectl,
Clone the repository from GitHub into your `$GOPATH`.

```bash
mkdir -p $GOPATH/src/github.com/gardener
cd $GOPATH/src/github.com/gardener
mkdir -p $(go env GOPATH)/src/github.com/gardener
cd $(go env GOPATH)/src/github.com/gardener
git clone git@github.com:gardener/gardener.git
cd gardener
```
Expand Down
5 changes: 5 additions & 0 deletions docs/usage/ipv6.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,8 @@
This documentation will be enhanced while implementing GEP-21, see [gardener/gardener#7051](https://github.com/gardener/gardener/issues/7051).

To use IPv6 single-stack networking, the [feature gate](../deployment/feature_gates.md) `IPv6SingleStack` must be enabled on gardener-apiserver.

## Development Setup

Developing or testing IPv6-related features requires a Linux machine (docker only supports IPv6 on Linux) and native IPv6 connectivity to the internet.
If you're on a different OS or don't have IPv6 connectivity in your office environment or via your home ISP, make sure to check out [gardener-community/dev-box-gcp](https://github.com/gardener-community/dev-box-gcp), which allows you to circumvent these limitations.

0 comments on commit 3ba69b2

Please sign in to comment.