mirror of
https://github.com/stakater/Reloader.git
synced 2026-02-14 18:09:50 +00:00
63 lines
2.3 KiB
Go
63 lines
2.3 KiB
Go
package common
|
|
|
|
import (
|
|
"github.com/stakater/Reloader/internal/pkg/constants"
|
|
"github.com/stakater/Reloader/internal/pkg/options"
|
|
"github.com/stakater/Reloader/internal/pkg/util"
|
|
v1 "k8s.io/api/core/v1"
|
|
csiv1 "sigs.k8s.io/secrets-store-csi-driver/apis/v1"
|
|
)
|
|
|
|
// Config contains rolling upgrade configuration parameters
|
|
type Config struct {
|
|
Namespace string
|
|
ResourceName string
|
|
ResourceAnnotations map[string]string
|
|
Annotation string
|
|
TypedAutoAnnotation string
|
|
SHAValue string
|
|
Type string
|
|
Labels map[string]string
|
|
}
|
|
|
|
// GetConfigmapConfig provides utility config for configmap
|
|
func GetConfigmapConfig(configmap *v1.ConfigMap) Config {
|
|
return Config{
|
|
Namespace: configmap.Namespace,
|
|
ResourceName: configmap.Name,
|
|
ResourceAnnotations: configmap.Annotations,
|
|
Annotation: options.ConfigmapUpdateOnChangeAnnotation,
|
|
TypedAutoAnnotation: options.ConfigmapReloaderAutoAnnotation,
|
|
SHAValue: util.GetSHAfromConfigmap(configmap),
|
|
Type: constants.ConfigmapEnvVarPostfix,
|
|
Labels: configmap.Labels,
|
|
}
|
|
}
|
|
|
|
// GetSecretConfig provides utility config for secret
|
|
func GetSecretConfig(secret *v1.Secret) Config {
|
|
return Config{
|
|
Namespace: secret.Namespace,
|
|
ResourceName: secret.Name,
|
|
ResourceAnnotations: secret.Annotations,
|
|
Annotation: options.SecretUpdateOnChangeAnnotation,
|
|
TypedAutoAnnotation: options.SecretReloaderAutoAnnotation,
|
|
SHAValue: util.GetSHAfromSecret(secret.Data),
|
|
Type: constants.SecretEnvVarPostfix,
|
|
Labels: secret.Labels,
|
|
}
|
|
}
|
|
|
|
func GetSecretProviderClassPodStatusConfig(podStatus *csiv1.SecretProviderClassPodStatus) Config {
|
|
// As csi injects SecretProviderClass, we will create config for it instead of SecretProviderClassPodStatus
|
|
// ResourceAnnotations will be retrieved during PerformAction call
|
|
return Config{
|
|
Namespace: podStatus.Namespace,
|
|
ResourceName: podStatus.Status.SecretProviderClassName,
|
|
Annotation: options.SecretProviderClassUpdateOnChangeAnnotation,
|
|
TypedAutoAnnotation: options.SecretProviderClassReloaderAutoAnnotation,
|
|
SHAValue: util.GetSHAfromSecretProviderClassPodStatus(podStatus.Status),
|
|
Type: constants.SecretProviderClassEnvVarPostfix,
|
|
}
|
|
}
|