Создайте pod из yaml в разделе данных ConfigMap
Я пишу оператор, который разворачивает приложение через yaml. Но этот ямл хранится в
data
раздел ConfigMap -
apiVersion: v1
kind: ConfigMap
metadata:
name: test-config
namespace: default
data:
hstr-opeartor.yaml: |
apiVersion: apps/v1
kind: Deployment
metadata:
name: 'hstr-operator'
namespace: 'cloudian'
spec:
replicas: 1
selector:
matchLabels:
name: 'hyperstore-operator'
template:
metadata:
labels:
name: 'hyperstore-operator'
spec:
containers:
- args:
- --enable-leader-election
command:
- hyperstore-operator
env:
- name: REBUILD_TIMER_EMM
value: "360"
- name: REBUILD_TIMER_NODE
value: "360"
- name: REBUILD_TIMER_PVC
value: "60"
- name: IMAGE_PULL_SECRETS
value: 'hyperstore-regcred'
- name: IMAGE_HSC
value: quay.io/cldn/test-image-v2
- name: WATCH_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: OPERATOR_NAME
value: hyperstore-operator
- name: IMAGE_PULL_POLICY
value: IfNotPresent
image: quay.io/cldn/test-image
imagePullPolicy: IfNotPresent
name: hyperstore-operator
resources:
limits:
cpu: 100m
memory: 1Gi
requests:
cpu: 100m
memory: 500Mi
imagePullSecrets:
- name: 'hyperstore-regcred'
terminationGracePeriodSeconds: 30
Ямл урезан, чтобы дать достаточно представления о проблеме. Но на самом деле это полный файл развертывания, который я могу сделать.
kubectl apply -f <resource>
с.
// newPodForCR returns a busybox pod with the same name/namespace as the cr
func newPodForCR(cr *hapv1alpha1.HscOperator) *corev1.Pod {
labels := map[string]string{
"app": cr.Name,
}
return &corev1.Pod{
ObjectMeta: metav1.ObjectMeta{
Name: cr.Name + "-pod",
Namespace: "default",
Labels: labels,
},
Spec: corev1.PodSpec{
Containers: []corev1.Container{
{
Name: cr.Name,
Image: cr.Spec.Image,
},
},
},
}
}
В коде контроллера моего оператора я гарантирую, что
ConfigMap
создано. Но теперь я хочу получить часть данных этой карты конфигурации и создать новый модуль с помощью yaml. Как мне прочитать это и создать новый модуль?