Skip to content

Commit 29ec5e7

Browse files
committed
Add Istio upgrades to docs
Signed-off-by: Stefan Prodan <[email protected]>
1 parent 6b0b0b2 commit 29ec5e7

File tree

1 file changed

+29
-5
lines changed

1 file changed

+29
-5
lines changed

README.md

Lines changed: 29 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ Progressive Delivery using Kubernetes and Istio.
1111

1212
GitOps is a way to do Continuous Delivery, it works by using Git as a source of truth
1313
for declarative infrastructure and workloads.
14-
For Kubernetes this means using `git push` instead of `kubectl create/apply` or `helm install/upgrade`.
14+
For Kubernetes this means using `git push` instead of `kubectl apply/delete` or `helm install/upgrade`.
1515

1616
In this workshop you'll be using GitHub to host the config repository and Flux as the GitOps delivery solution.
1717

@@ -28,7 +28,7 @@ In this workshop you'll be using Flagger and Prometheus to automate Canary Relea
2828
## Prerequisites
2929

3030
You'll need a Kubernetes cluster **v1.16** or newer with `LoadBalancer` support.
31-
For testing purposes you can use Minikube with four CPUs and 4GB of memory.
31+
For testing purposes you can use Minikube with 2 CPUs and 4GB of memory.
3232

3333
Install the `flux` CLI and `yq` with Homebrew:
3434

@@ -45,6 +45,12 @@ Verify that your cluster satisfies the prerequisites with:
4545
flux check --pre
4646
```
4747

48+
Install `jq` and `yq` with Homebrew:
49+
50+
```bash
51+
brew install jq yq
52+
```
53+
4854
Fork this repository and clone it:
4955

5056
```bash
@@ -54,7 +60,12 @@ cd gitops-istio
5460

5561
## Cluster bootstrap
5662

57-
Install Flux by specifying your fork URL:
63+
With `flux bootstrap` command you can install Flux on a Kubernetes cluster
64+
and configure it to manage itself from a Git repository.
65+
If the Flux components are present on the cluster,
66+
the bootstrap command will perform an upgrade if needed.
67+
68+
Bootstrap Flux by specifying your GitHub repository fork URL:
5869

5970
```bash
6071
flux bootstrap git \
@@ -63,6 +74,9 @@ flux bootstrap git \
6374
--path=clusters/my-cluster
6475
```
6576

77+
The above command requires ssh-agent, if you're using Windows see
78+
[flux boostrap github](https://toolkit.fluxcd.io/guides/installation/#github-and-github-enterprise) documentation.
79+
6680
At bootstrap, Flux generates an SSH key and prints the public key.
6781
In order to sync your cluster state with git you need to copy the public key and create a deploy key with write
6882
access on your GitHub repository. On GitHub go to _Settings > Deploy keys_ click on _Add deploy key_,
@@ -100,7 +114,6 @@ spec:
100114
kind: GitRepository
101115
name: flux-system
102116
path: ./apps
103-
prune: true
104117
```
105118
106119
Watch Flux installing Istio first, then the demo apps:
@@ -109,7 +122,13 @@ Watch Flux installing Istio first, then the demo apps:
109122
watch flux get kustomizations
110123
```
111124

112-
## Istio customization
125+
You can tail the Flux reconciliation logs with:
126+
127+
```bash
128+
flux logs --all-namespaces --follow --tail=10
129+
```
130+
131+
## Istio customizations and upgrades
113132

114133
![Flux Istio Operator](https://raw.githubusercontent.com/fluxcd/helm-operator-get-started/master/diagrams/flux-istio-operator.png)
115134

@@ -136,6 +155,11 @@ spec:
136155
After modifying the Istio settings, you can push the change to git and Flux will apply it on the cluster.
137156
The Istio operator will reconfigure the Istio control plane according to your changes.
138157
158+
When a new Istio version is available, the [`update-istio` GitHub Action workflow](https://github.com/stefanprodan/gitops-istio/blob/main/.github/workflows/update-istio.yaml)
159+
will open a pull request with the manifest updates needed for upgrading Istio Operator.
160+
The new Istio version is tested on Kubernetes Kind by the [`e2e` GitHub Action workflow](https://github.com/stefanprodan/gitops-istio/blob/main/.github/workflows/e2e.yaml)
161+
and when the PR is merged into the main branch, Flux will upgrade Istio in-cluster.
162+
139163
## Application bootstrap
140164

141165
When Flux syncs the Git repository with your cluster, it creates the frontend/backend deployment, HPA and a canary object.

0 commit comments

Comments
 (0)