...
1### Addon-manager
2
3addon-manager manages two classes of addons with given template files in
4`$ADDON_PATH` (default `/etc/kubernetes/addons/`).
5- Addons with label `addonmanager.kubernetes.io/mode=Reconcile` will be periodically
6reconciled. Direct manipulation to these addons through apiserver is discouraged because
7addon-manager will bring them back to the original state. In particular:
8 - Addon will be re-created if it is deleted.
9 - Addon will be reconfigured to the state given by the supplied fields in the template
10 file periodically.
11 - Addon will be deleted when its manifest file is deleted from the `$ADDON_PATH`.
12- Addons with label `addonmanager.kubernetes.io/mode=EnsureExists` will be checked for
13existence only. Users can edit these addons as they want. In particular:
14 - Addon will only be created/re-created with the given template file when there is no
15 instance of the resource with that name.
16 - Addon will not be deleted when the manifest file is deleted from the `$ADDON_PATH`.
17
18Notes:
19- Label `kubernetes.io/cluster-service=true` is deprecated (only for Addon Manager).
20In future release (after one year), Addon Manager may not respect it anymore. Addons
21have this label but without `addonmanager.kubernetes.io/mode=EnsureExists` will be
22treated as "reconcile class addons" for now.
23- Resources under `$ADDON_PATH` need to have either one of these two labels.
24Otherwise it will be omitted.
25
26#### Images
27
28addon-manager images are pushed to `registry.k8s.io`. As addon-manager is built for multiple architectures, there is an image per architecture in the format - `registry.k8s.io/addon-manager/kube-addon-manager-$(ARCH):$(VERSION)`.
29
30#### How to release
31
32The `addon-manager` is built for multiple architectures.
33
341. Change something in the source
352. Bump `VERSION` in the `Makefile`
363. Bump `KUBECTL_VERSION` in the `Makefile` if required
374. Build the `amd64` image and test it on a cluster
385. Push all images
39
40```console
41# Build for linux/amd64 (default)
42$ make push ARCH=amd64
43# ---> staging-k8s.gcr.io/addon-manager/kube-addon-manager-amd64:VERSION
44# ---> staging-k8s.gcr.io/addon-manager/kube-addon-manager:VERSION (image with backwards-compatible naming)
45
46$ make push ARCH=arm
47# ---> staging-k8s.gcr.io/addon-manager/kube-addon-manager-arm:VERSION
48
49$ make push ARCH=arm64
50# ---> staging-k8s.gcr.io/addon-manager/kube-addon-manager-arm64:VERSION
51
52$ make push ARCH=ppc64le
53# ---> staging-k8s.gcr.io/addon-manager/kube-addon-manager-ppc64le:VERSION
54
55$ make push ARCH=s390x
56# ---> staging-k8s.gcr.io/addon-manager/kube-addon-manager-s390x:VERSION
57```
58
59If you don't want to push the images, run `make` or `make build` instead
View as plain text