bootstrappackages

package
v0.0.0-...-4b974b3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 18, 2024 License: Apache-2.0 Imports: 24 Imported by: 1

README

bootstrap package controller

The bootstrap controller is a k8s controller which goal is to bootstrap packages on a newly installed cluster. This ensure e.g. that a gitops tool like config-sync is installed on a cluster and subsequent configurations tasks get handled through the gitops toolchain.

implementation

The controller acts on package revision resources. It first figures out if the resources of a package revision are to be installed on the remote cluster, by checking if:

  • repository has the nephio.org/staging key set

If the controller knows the package is to be installed on the remote cluster it finds the cluster name by checking the nephio.org/cluster-name annotation of the first resource in the package. (we assume the nephio.org/cluster-name annotation is set on all resources). Once the controller knows the cluster name it finds the credentials of the remote cluster and the type of cluster based on the signatures of the secret (right now only cluster api is implemented, but the code is able to handle other implementations). Once the remote credentials are found and the cluster is deemed ready, the package get installed on the remote cluster.

If any of the validation fail the controller will retry installing the package. Right now the watch on package revisions is a timed based loop.

Multiple packages can be installed by the bootstrap package controller as long as they are made available in a repo with the annotation key nephio.org/staging and a corresponding annotation nephio.org/cluster-name is set on the resources of the package.

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL