48 lines
1.4 KiB
Go
48 lines
1.4 KiB
Go
package k8s
|
|
|
|
import (
|
|
apiv1 "k8s.io/api/core/v1"
|
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
)
|
|
|
|
// CreateConfigMap create a config map with data
|
|
func (k *K8S) CreateConfigMap(namespace string, name string, data map[string]string) (*apiv1.ConfigMap, error) {
|
|
cm := &apiv1.ConfigMap{
|
|
ObjectMeta: metav1.ObjectMeta{
|
|
Name: name,
|
|
},
|
|
Data: data,
|
|
}
|
|
return k.CoreV1().ConfigMaps(namespace).Create(cm)
|
|
}
|
|
|
|
// DeleteConfigMap delete a config map
|
|
func (k *K8S) DeleteConfigMap(namespace string, name string) error {
|
|
return k.CoreV1().ConfigMaps(namespace).Delete(name, &metav1.DeleteOptions{})
|
|
}
|
|
|
|
// UpdateConfigMap update a config map
|
|
func (k *K8S) UpdateConfigMap(namespace string, name string, data map[string]string) (*apiv1.ConfigMap, error) {
|
|
cm := &apiv1.ConfigMap{
|
|
ObjectMeta: metav1.ObjectMeta{
|
|
Name: name,
|
|
},
|
|
Data: data,
|
|
}
|
|
return k.CoreV1().ConfigMaps(namespace).Update(cm)
|
|
}
|
|
|
|
// GetConfigMap get a config map
|
|
func (k *K8S) GetConfigMap(namespace string, name string) (*apiv1.ConfigMap, error) {
|
|
return k.CoreV1().ConfigMaps(namespace).Get(name, metav1.GetOptions{})
|
|
}
|
|
|
|
// CreateOrUpdateConfigMap create or update a config map
|
|
func (k *K8S) CreateOrUpdateConfigMap(namespace string, name string, data map[string]string) (*apiv1.ConfigMap, error) {
|
|
_, err := k.GetConfigMap(namespace, name)
|
|
if err != nil {
|
|
return k.CreateConfigMap(namespace, name, data)
|
|
}
|
|
return k.UpdateConfigMap(namespace, name, data)
|
|
}
|