【修改】k8s 配置

This commit is contained in:
PandaGoAdmin
2022-01-22 17:07:04 +08:00
parent c6ebe89865
commit 33cc74711d
439 changed files with 9936 additions and 21687 deletions

View File

@@ -0,0 +1,102 @@
package configmap
import (
"context"
"fmt"
v1 "k8s.io/api/core/v1"
metaV1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes"
"pandax/apps/devops/entity/k8s"
k8scommon "pandax/apps/devops/services/k8s/common"
"pandax/apps/devops/services/k8s/dataselect"
"pandax/base/global"
)
// ConfigMapList contains a list of Config Maps in the cluster.
type ConfigMapList struct {
ListMeta k8s.ListMeta `json:"listMeta"`
// Unordered list of Config Maps
Items []ConfigMap `json:"items"`
}
// ConfigMap API resource provides mechanisms to inject containers with configuration data while keeping
// containers agnostic of Kubernetes
type ConfigMap struct {
ObjectMeta k8s.ObjectMeta `json:"objectMeta"`
TypeMeta k8s.TypeMeta `json:"typeMeta"`
}
// GetConfigMapList returns a list of all ConfigMaps in the cluster.
func GetConfigMapList(client kubernetes.Interface, nsQuery *k8scommon.NamespaceQuery, dsQuery *dataselect.DataSelectQuery) (*ConfigMapList, error) {
global.Log.Info(fmt.Sprintf("Getting list config maps in the namespace %s", nsQuery.ToRequestParam()))
channels := &k8scommon.ResourceChannels{
ConfigMapList: k8scommon.GetConfigMapListChannel(client, nsQuery, 1),
}
return GetConfigMapListFromChannels(channels, dsQuery)
}
// GetConfigMapListFromChannels returns a list of all Config Maps in the cluster reading required resource list once from the channels.
func GetConfigMapListFromChannels(channels *k8scommon.ResourceChannels, dsQuery *dataselect.DataSelectQuery) (*ConfigMapList, error) {
configMaps := <-channels.ConfigMapList.List
err := <-channels.ConfigMapList.Error
if err != nil {
return nil, err
}
result := toConfigMapList(configMaps.Items, dsQuery)
return result, nil
}
func toConfigMap(meta metaV1.ObjectMeta) ConfigMap {
return ConfigMap{
ObjectMeta: k8s.NewObjectMeta(meta),
TypeMeta: k8s.NewTypeMeta(k8s.ResourceKindConfigMap),
}
}
func toConfigMapList(configMaps []v1.ConfigMap, dsQuery *dataselect.DataSelectQuery) *ConfigMapList {
result := &ConfigMapList{
Items: make([]ConfigMap, 0),
ListMeta: k8s.ListMeta{TotalItems: len(configMaps)},
}
configMapCells, filteredTotal := dataselect.GenericDataSelectWithFilter(toCells(configMaps), dsQuery)
configMaps = fromCells(configMapCells)
result.ListMeta = k8s.ListMeta{TotalItems: filteredTotal}
for _, item := range configMaps {
result.Items = append(result.Items, toConfigMap(item.ObjectMeta))
}
return result
}
func DeleteConfigMap(client *kubernetes.Clientset, namespace string, name string) error {
global.Log.Info(fmt.Sprintf("请求删除ConfigMap: %v, namespace: %v", name, namespace))
return client.CoreV1().ConfigMaps(namespace).Delete(
context.TODO(),
name,
metaV1.DeleteOptions{},
)
}
func DeleteCollectionConfigMap(client *kubernetes.Clientset, configMapList []k8s.ConfigMapData) (err error) {
global.Log.Info("批量删除ConfigMap开始")
for _, v := range configMapList {
global.Log.Info(fmt.Sprintf("delete configMap%v, ns: %v", v.Name, v.Namespace))
err := client.CoreV1().ConfigMaps(v.Namespace).Delete(
context.TODO(),
v.Name,
metaV1.DeleteOptions{},
)
if err != nil {
global.Log.Error(err.Error())
return err
}
}
global.Log.Info("删除ConfigMap已完成")
return nil
}