Documentation
¶
Overview ¶
Package controller contains all our controllers. They are sorted by binary they run in, which means that for all folders here a corresponding folder in the `cmd/` directory has to exist.
The only exception here are the `util` package which does not contain any controllers but some helpers and the `shared` package which contains controllers that run within more than one binary.
Directories
¶
Path | Synopsis |
---|---|
Package kubeletdnatcontroller contains the kubeletdnat controller which:
|
Package kubeletdnatcontroller contains the kubeletdnat controller which: |
Package mastercontrollermanager contains all controllers that run within the master-controller-manager binary.
|
Package mastercontrollermanager contains all controllers that run within the master-controller-manager binary. |
application-definition-synchronizer
Package applicationdefinitionsynchronizer contains a controller that is responsible for ensuring that ApplicationDefinition are synced from master to the seed clusters.
|
Package applicationdefinitionsynchronizer contains a controller that is responsible for ensuring that ApplicationDefinition are synced from master to the seed clusters. |
application-secret-synchronizer
Package applicationsecretsynchronizer contains a controller that is responsible for ensuring that ApplicationSecrets are synced from master to the seed clusters.
|
Package applicationsecretsynchronizer contains a controller that is responsible for ensuring that ApplicationSecrets are synced from master to the seed clusters. |
cluster-template-synchronizer
Package clustertemplatesynchronizer contains a controller that is responsible for ensuring that the kubermatic ClusterTemplate objects are synced from master to the seed clusters.
|
Package clustertemplatesynchronizer contains a controller that is responsible for ensuring that the kubermatic ClusterTemplate objects are synced from master to the seed clusters. |
kc-status-controller
Package kcstatuscontroller contains a controller that is responsible for managing the basic parts of the KubermaticConfigurationStatus:
|
Package kcstatuscontroller contains a controller that is responsible for managing the basic parts of the KubermaticConfigurationStatus: |
master-constraint-controller
Package masterconstraintsyncercontroller contains a controller that is responsible for ensuring that the kubermatic constraint are synced from master to the seed clusters.
|
Package masterconstraintsyncercontroller contains a controller that is responsible for ensuring that the kubermatic constraint are synced from master to the seed clusters. |
master-constraint-template-controller
Package masterconstrainttemplatecontroller contains a controller that is responsible for ensuring that the kubermatic constraint templates are synced from master to the seed clusters.
|
Package masterconstrainttemplatecontroller contains a controller that is responsible for ensuring that the kubermatic constraint templates are synced from master to the seed clusters. |
preset-synchronizer
Package presetsynchronizer contains a controller that is responsible for ensuring that the kubermatic Preset objects are synced from master to the seed clusters.
|
Package presetsynchronizer contains a controller that is responsible for ensuring that the kubermatic Preset objects are synced from master to the seed clusters. |
project-label-synchronizer
Package projectlabelsynchronizer contains a controller that synchronizes labels from a project onto all the clusters that belong to the project, without allowing them to be overridden.
|
Package projectlabelsynchronizer contains a controller that synchronizes labels from a project onto all the clusters that belong to the project, without allowing them to be overridden. |
project-synchronizer
Package projectsynchronizer contains a controller that is responsible for ensuring that the Kubermatic Project objects are synced from master to the seed clusters.
|
Package projectsynchronizer contains a controller that is responsible for ensuring that the Kubermatic Project objects are synced from master to the seed clusters. |
rbac
Package rbac contains a controller that is responsible for setting up RBAC to allow users to access the clusters they should be able to access.
|
Package rbac contains a controller that is responsible for setting up RBAC to allow users to access the clusters they should be able to access. |
seed-proxy
Package seedproxy contains a controller that is responsible for creating various resources in the master cluster to be able to access the other seeds clusters prometheus, leveraging `kubectl proxy` under the hood.
|
Package seedproxy contains a controller that is responsible for creating various resources in the master cluster to be able to access the other seeds clusters prometheus, leveraging `kubectl proxy` under the hood. |
seed-status-controller
Package seedstatuscontroller contains a controller that is responsible for managing the basic parts of the SeedStatus:
|
Package seedstatuscontroller contains a controller that is responsible for managing the basic parts of the SeedStatus: |
seed-sync
Package seedsync contains a controller that is responsible for synchronizing the `Seed` custom resources onto the corresponding seed clusters, so that the seed-controller-manager can use them.
|
Package seedsync contains a controller that is responsible for synchronizing the `Seed` custom resources onto the corresponding seed clusters, so that the seed-controller-manager can use them. |
serviceaccount-projectbinding-controller
Package serviceaccountprojectbindingcontroller contains a controller that watches Users, but only those that are KKP service accounts.
|
Package serviceaccountprojectbindingcontroller contains a controller that watches Users, but only those that are KKP service accounts. |
user-synchronizer
Package usersynchronizer contains a controller that is responsible for ensuring that the kubermatic User objects (excluding service account users) are synced from master to the seed clusters.
|
Package usersynchronizer contains a controller that is responsible for ensuring that the kubermatic User objects (excluding service account users) are synced from master to the seed clusters. |
usersshkey-project-ownership
Package usersshkeyprojectownershipcontroller contains a controller that ensures that each UserSSHKey has an owner reference pointing to the project specified in spec.project.
|
Package usersshkeyprojectownershipcontroller contains a controller that ensures that each UserSSHKey has an owner reference pointing to the project specified in spec.project. |
usersshkey-synchronizer
The usersshkeysynchronizer controller is responsible for synchronizing usersshkeys into a secret in the cluster namespace.
|
The usersshkeysynchronizer controller is responsible for synchronizing usersshkeys into a secret in the cluster namespace. |
nodeport-proxy
|
|
Package operator contains all controllers that run within the kubermatic operator binary.
|
Package operator contains all controllers that run within the kubermatic operator binary. |
seed/resources/nodeportproxy
Package nodeportproxy is responsible for reconciling a seed-cluster-wide proxy based on Envoy and a custom envoy-manager/lb-updater tools.
|
Package nodeportproxy is responsible for reconciling a seed-cluster-wide proxy based on Envoy and a custom envoy-manager/lb-updater tools. |
Package seedcontrollermanager contains a package for each controller that runs within the seed controller manager binary.
|
Package seedcontrollermanager contains a package for each controller that runs within the seed controller manager binary. |
addon
Package addon contains a controller that applies addons based on a Addon CRD.
|
Package addon contains a controller that applies addons based on a Addon CRD. |
addoninstaller
Package addoninstaller contains a controller that is responsible for making sure a set of addons that are configured via a flag on the controller-manager and are required for basic cluster functionality exist for all clusters.
|
Package addoninstaller contains a controller that is responsible for making sure a set of addons that are configured via a flag on the controller-manager and are required for basic cluster functionality exist for all clusters. |
application-secret-cluster-controller
Package applicationsecretclustercontroller contains a controller that ensure ApplicationSecrets are synced from kubermatic namespace to the user cluster namespaces.
|
Package applicationsecretclustercontroller contains a controller that ensure ApplicationSecrets are synced from kubermatic namespace to the user cluster namespaces. |
auto-update-controller
Package autoupdatecontroller contains a controller that auto applies updates to the cluster version and potentially to the MachineDeployments inside the usercluster.
|
Package autoupdatecontroller contains a controller that auto applies updates to the cluster version and potentially to the MachineDeployments inside the usercluster. |
backup
Package backup contains a controller that is responsible for creating backup-related resources.
|
Package backup contains a controller that is responsible for creating backup-related resources. |
cloud
Package cloud contains a controller that is responsible for creating cluster-level resources at the cloud provider, like networks, subnets or security groups.
|
Package cloud contains a controller that is responsible for creating cluster-level resources at the cloud provider, like networks, subnets or security groups. |
cluster-credentials-controller
Package clustercredentialscontroller contains a controller that watches Cluster objects and is responsible for moving inline credentials (from the CloudSpec) into dedicated Kubernetes Secrets.
|
Package clustercredentialscontroller contains a controller that watches Cluster objects and is responsible for moving inline credentials (from the CloudSpec) into dedicated Kubernetes Secrets. |
cluster-phase-controller
Package clusterphasecontroller contains a controller that updates the Phase on a Cluster object, based on the ClusterStatus.
|
Package clusterphasecontroller contains a controller that updates the Phase on a Cluster object, based on the ClusterStatus. |
cluster-stuck-controller
Package clusterstuckcontroller contains a controller that is only useful during development.
|
Package clusterstuckcontroller contains a controller that is only useful during development. |
cluster-template-controller
Package clustertemplatecontroller contains a controller that is responsible for managing cluster template instances.
|
Package clustertemplatecontroller contains a controller that is responsible for managing cluster template instances. |
constraint-controller
Package seedconstraintsynchronizer contains a controller that is responsible for ensuring that the kubermatic constraints are synced to the user cluster namespace.
|
Package seedconstraintsynchronizer contains a controller that is responsible for ensuring that the kubermatic constraints are synced to the user cluster namespace. |
constraint-template-controller
Package constrainttemplatecontroller contains a controller that is responsible for ensuring that the kubermatic constraint templates are synced to the user cluster.
|
Package constrainttemplatecontroller contains a controller that is responsible for ensuring that the kubermatic constraint templates are synced to the user cluster. |
initial-application-installation-controller
Package initialapplicationinstallationcontroller contains a controller that watches Cluster resources that have the InitialApplicationInstallations annotation.
|
Package initialapplicationinstallationcontroller contains a controller that watches Cluster resources that have the InitialApplicationInstallations annotation. |
initialmachinedeployment
Package initialmachinedeployment contains a controller that watches Cluster resources and will transform the InitialMachineDeployment annotation into an actual MachineDeployment once the cluster has become ready.
|
Package initialmachinedeployment contains a controller that watches Cluster resources and will transform the InitialMachineDeployment annotation into an actual MachineDeployment once the cluster has become ready. |
ipam
Package ipam contains a controller that is responsible for managing IPAM (Multi-Cluster IP Address Management) pools.
|
Package ipam contains a controller that is responsible for managing IPAM (Multi-Cluster IP Address Management) pools. |
kubernetes
Package kubernetes contains a controller that reconciles all controlplane components in the seed needed for Kubernetes clusters.
|
Package kubernetes contains a controller that reconciles all controlplane components in the seed needed for Kubernetes clusters. |
mla
Package mla contains controllers that are responsible for configuring MLA (Monitoring, Logging, and Alerting) for user clusters.
|
Package mla contains controllers that are responsible for configuring MLA (Monitoring, Logging, and Alerting) for user clusters. |
monitoring
Package monitoring contains a controller that reconciles all monitoring-related components for all cluster types in the seed.
|
Package monitoring contains a controller that reconciles all monitoring-related components for all cluster types in the seed. |
operating-system-profile-synchronizer
Package operatingsystemprofilesynchronizer contains a controller that is responsible for ensuring that OperatingSystemProfiles are synced from the seed namespace to the user cluster namespace.
|
Package operatingsystemprofilesynchronizer contains a controller that is responsible for ensuring that OperatingSystemProfiles are synced from the seed namespace to the user cluster namespace. |
preset-controller
Package presetcontroller contains a controller that is responsible for managing presets.
|
Package presetcontroller contains a controller that is responsible for managing presets. |
project
Package project contains a controller responsible for removing all clusters in a project whenever a project is deleted, and (importantly) waiting until all clusters are gone before releasing the project.
|
Package project contains a controller responsible for removing all clusters in a project whenever a project is deleted, and (importantly) waiting until all clusters are gone before releasing the project. |
pvwatcher
Package pvwatcher contains a controller that is responsible for monitoring and recovering users' clusters etcd plane PVs.
|
Package pvwatcher contains a controller that is responsible for monitoring and recovering users' clusters etcd plane PVs. |
seedresourcesuptodatecondition
Package seedresourcesuptodatecondition contains a controller that is responsible for:
|
Package seedresourcesuptodatecondition contains a controller that is responsible for: |
update-controller
Package updatecontroller contains a controller that coordinates the upgrade of clusters.
|
Package updatecontroller contains a controller that coordinates the upgrade of clusters. |
Package shared contains all controllers that are imported by more than one controller-manager
|
Package shared contains all controllers that are imported by more than one controller-manager |
Package userclustercontrollermanager contains all controllers running in the usercluster controller manager binary.
|
Package userclustercontrollermanager contains all controllers running in the usercluster controller manager binary. |
application-installation-controller
Package applicationinstallationcontroller contains a controller that is responsible for reconciling ApplicationInstallation (ie install, update or uninstall applications into the user-cluster)
|
Package applicationinstallationcontroller contains a controller that is responsible for reconciling ApplicationInstallation (ie install, update or uninstall applications into the user-cluster) |
ccm-csi-migrator
Package ccmcsimigrator contains a controller that is responsible to ensure the cluster status related to CCM/CSI machine migration.
|
Package ccmcsimigrator contains a controller that is responsible to ensure the cluster status related to CCM/CSI machine migration. |
cluster-role-labeler
Package clusterrolelabeler contains a controller that is responsible for ensuring that the viewer, editor and admin clusterroles have a `component: userClusterRole` label associated.
|
Package clusterrolelabeler contains a controller that is responsible for ensuring that the viewer, editor and admin clusterroles have a `component: userClusterRole` label associated. |
constraint-syncer
Package constraint syncer contains the controller which is responsible for syncing the kubermatic Constraints to the user cluster as gatekeeper constraints.
|
Package constraint syncer contains the controller which is responsible for syncing the kubermatic Constraints to the user cluster as gatekeeper constraints. |
flatcar
Package flatcar linux contains the flatcar linux controller that is responsible for deploying the [Flatcar Linux Update Operator](https://github.com/kinvolk/flatcar-linux-update-operator) operator and DaemonSet
|
Package flatcar linux contains the flatcar linux controller that is responsible for deploying the [Flatcar Linux Update Operator](https://github.com/kinvolk/flatcar-linux-update-operator) operator and DaemonSet |
ipam
Package ipam contains a controller responsible for assigning IP addresses from a configured pool to machines that have an annotation keyed `machine-controller.kubermatic.io/initializers` which contains the value ipam.
|
Package ipam contains a controller responsible for assigning IP addresses from a configured pool to machines that have an annotation keyed `machine-controller.kubermatic.io/initializers` which contains the value ipam. |
node-labeler
Package nodelabeler contains a controller that ensures Nodes have various labels present at all times:
|
Package nodelabeler contains a controller that ensures Nodes have various labels present at all times: |
node-version-controller
Package nodeversioncontroller contains a controller that watches Nodes and updates the Cluster's status with the oldestNodeVersion.
|
Package nodeversioncontroller contains a controller that watches Nodes and updates the Cluster's status with the oldestNodeVersion. |
owner-binding-creator
The ownerbindingcreator controller is responsible for making sure that the binding exists and if it doesn't, will create it and use the cluster owner as subject.
|
The ownerbindingcreator controller is responsible for making sure that the binding exists and if it doesn't, will create it and use the cluster owner as subject. |
resources
Package resources contains the resources controller responsible for making sure the various Kubernetes resources we need in the usercluster like RBAC, Deployments, ServiceAccounts and much more are present.
|
Package resources contains the resources controller responsible for making sure the various Kubernetes resources we need in the usercluster like RBAC, Deployments, ServiceAccounts and much more are present. |
role-cloner-controller
Package roleclonercontroller contains a controller that duplicates all roles with the `component=userClusterRole` label that are in the kube-system namespace into all other namespaces.
|
Package roleclonercontroller contains a controller that duplicates all roles with the `component=userClusterRole` label that are in the kube-system namespace into all other namespaces. |
Package usersshkeysagent contains the usersshkeysagent controller, which is deployed as a DaemonSet on all usercluster nodes and responsible for synchronizing the `$HOME/.ssh/authorized_keys` file for all users we know about (root, core, ubuntu, centos) and that exist with the content of a secret.
|
Package usersshkeysagent contains the usersshkeysagent controller, which is deployed as a DaemonSet on all usercluster nodes and responsible for synchronizing the `$HOME/.ssh/authorized_keys` file for all users we know about (root, core, ubuntu, centos) and that exist with the content of a secret. |
Package util contains helpers for building controllers.
|
Package util contains helpers for building controllers. |
Click to show internal directories.
Click to hide internal directories.