addon-manager manages two classes of addons with given template files in
- Addons with label
addonmanager.kubernetes.io/mode=Reconcilewill be periodically reconciled. Direct manipulation to these addons through apiserver is discouraged because addon-manager will bring them back to the original state. In particular:
- Addon will be re-created if it is deleted.
- Addon will be reconfigured to the state given by the supplied fields in the template file periodically.
- Addon will be deleted when its manifest file is deleted from the
- Addons with label
addonmanager.kubernetes.io/mode=EnsureExistswill be checked for existence only. Users can edit these addons as they want. In particular:
- Addon will only be created/re-created with the given template file when there is no instance of the resource with that name.
- Addon will not be deleted when the manifest file is deleted from the
kubernetes.io/cluster-service=trueis deprecated (only for Addon Manager). In future release (after one year), Addon Manager may not respect it anymore. Addons have this label but without
addonmanager.kubernetes.io/mode=EnsureExistswill be treated as "reconcile class addons" for now.
- Resources under
$ADDON_PATHneed to have either one of these two labels. Otherwise it will be omitted.
- The above label and namespace rule does not stand for
/opt/namespace.yamland resources under
/etc/kubernetes/admission-controls/. addon-manager will attempt to create them regardless during startup.
How to release
addon-manager is built for multiple architectures.
- Change something in the source
- Build the
amd64image and test it on a cluster
- Push all images
# Build for linux/amd64 (default) $ make push ARCH=amd64 # ---> staging-k8s.gcr.io/kube-addon-manager-amd64:VERSION # ---> staging-k8s.gcr.io/kube-addon-manager:VERSION (image with backwards-compatible naming) $ make push ARCH=arm # ---> staging-k8s.gcr.io/kube-addon-manager-arm:VERSION $ make push ARCH=arm64 # ---> staging-k8s.gcr.io/kube-addon-manager-arm64:VERSION $ make push ARCH=ppc64le # ---> staging-k8s.gcr.io/kube-addon-manager-ppc64le:VERSION $ make push ARCH=s390x # ---> staging-k8s.gcr.io/kube-addon-manager-s390x:VERSION
If you don't want to push the images, run
make build instead