Skip to content

Commit 27dc8e9

Browse files
author
玖宇
committed
Simplify thinruntime reconcile process and resource creation
Signed-off-by: 玖宇 <[email protected]>
1 parent b15502c commit 27dc8e9

File tree

22 files changed

+108
-849
lines changed

22 files changed

+108
-849
lines changed

charts/thin/templates/config/runtime.yaml

Lines changed: 0 additions & 22 deletions
This file was deleted.

charts/thin/templates/fuse/daemonset.yaml

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -119,9 +119,6 @@ spec:
119119
- mountPath: /etc/fluid/config
120120
name: thin-conf
121121
readOnly: true
122-
- mountPath: /etc/fluid/runtime
123-
name: runtime
124-
readOnly: true
125122
{{- if .Values.fuse.cacheDir }}
126123
- name: cache-dir
127124
mountPath: {{ .Values.fuse.cacheDir }}
@@ -155,13 +152,6 @@ spec:
155152
path: config.json
156153
defaultMode: 0444
157154
{{- end }}
158-
- name: runtime
159-
configMap:
160-
name: {{ template "thin.fullname" . }}-runtimeset
161-
items:
162-
- key: runtime.json
163-
path: runtime.json
164-
defaultMode: 0444
165155
{{- if .Values.fuse.volumes }}
166156
{{ toYaml .Values.fuse.volumes | indent 8 }}
167157
{{- end }}

charts/thin/templates/worker/statefuleset.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
{{ if .Values.worker.enabled -}}
12
apiVersion: apps/v1
23
kind: StatefulSet
34
metadata:
@@ -107,3 +108,4 @@ spec:
107108
{{- if .Values.worker.volumes }}
108109
{{ toYaml .Values.worker.volumes | indent 8 }}
109110
{{- end }}
111+
{{- end -}}

charts/thin/values.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ runtimeValue: ""
3333

3434
## WORKER ##
3535
worker:
36+
enabled: false
3637
image: ""
3738
imageTag: ""
3839
imagePullPolicy: ""

pkg/application/inject/fuse/mutator/mutator_default.go

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import (
2424
"github.com/go-logr/logr"
2525
"github.com/pkg/errors"
2626
corev1 "k8s.io/api/core/v1"
27-
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2827
"k8s.io/apimachinery/pkg/types"
2928
"sigs.k8s.io/controller-runtime/pkg/client"
3029

@@ -331,24 +330,16 @@ func (helper *defaultMutatorHelper) prepareFuseContainerPostStartScript() error
331330
return err
332331
}
333332

334-
ownerReference := metav1.OwnerReference{
335-
APIVersion: dataset.APIVersion,
336-
Kind: dataset.Kind,
337-
Name: dataset.Name,
338-
UID: dataset.UID,
339-
}
340-
341333
// Fluid assumes pvc name is the same with runtime's name
342334
gen := poststart.NewDefaultPostStartScriptGenerator()
343-
cmKey := gen.GetConfigMapKeyByOwner(types.NamespacedName{Namespace: datasetNamespace, Name: datasetName}, template.FuseMountInfo.FsType)
344-
cm := gen.BuildConfigMap(ownerReference, cmKey)
345-
335+
cmKey := gen.GetNamespacedConfigMapKey(types.NamespacedName{Namespace: datasetNamespace, Name: datasetName}, template.FuseMountInfo.FsType)
346336
found, err := kubeclient.IsConfigMapExist(helper.client, cmKey.Name, cmKey.Namespace)
347337
if err != nil {
348338
return err
349339
}
350340

351341
if !found {
342+
cm := gen.BuildConfigMap(dataset, cmKey)
352343
err = helper.client.Create(context.TODO(), cm)
353344
if err != nil {
354345
// If ConfigMap creation succeeds concurrently, continue to mutate

pkg/application/inject/fuse/mutator/mutator_unprivileged.go

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ import (
2525
"github.com/fluid-cloudnative/fluid/pkg/utils/kubeclient"
2626
"github.com/pkg/errors"
2727
corev1 "k8s.io/api/core/v1"
28-
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2928
"k8s.io/apimachinery/pkg/types"
3029
)
3130

@@ -130,17 +129,10 @@ func (mutator *unprivilegedMutatorHelper) prepareFuseContainerPostStartScript()
130129
return err
131130
}
132131

133-
ownerReference := metav1.OwnerReference{
134-
APIVersion: dataset.APIVersion,
135-
Kind: dataset.Kind,
136-
Name: dataset.Name,
137-
UID: dataset.UID,
138-
}
139-
140132
// Fluid assumes pvc name is the same with runtime's name
141133
gen := poststart.NewDefaultPostStartScriptGenerator()
142-
cmKey := gen.GetConfigMapKeyByOwner(types.NamespacedName{Namespace: datasetNamespace, Name: datasetName}, template.FuseMountInfo.FsType)
143-
cm := gen.BuildConfigMap(ownerReference, cmKey)
134+
cmKey := gen.GetNamespacedConfigMapKey(types.NamespacedName{Namespace: datasetNamespace, Name: datasetName}, template.FuseMountInfo.FsType)
135+
cm := gen.BuildConfigMap(dataset, cmKey)
144136

145137
found, err := kubeclient.IsConfigMapExist(mutator.client, cmKey.Name, cmKey.Namespace)
146138
if err != nil {

pkg/application/inject/fuse/poststart/check_fuse_default.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ type defaultPostStartScriptGenerator struct {
8181
func NewDefaultPostStartScriptGenerator() *defaultPostStartScriptGenerator {
8282
return &defaultPostStartScriptGenerator{
8383
scriptGeneratorHelper: scriptGeneratorHelper{
84-
configMapName: "check-mount",
84+
configMapName: "default-check-mount",
8585
scriptFileName: "check-mount.sh",
8686
scriptMountPath: "/check-mount.sh",
8787
scriptContent: replacer.Replace(contentPrivilegedSidecar),

pkg/application/inject/fuse/poststart/script_gen_helper.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ limitations under the License.
1717
package poststart
1818

1919
import (
20+
datav1alpha1 "github.com/fluid-cloudnative/fluid/api/v1alpha1"
2021
"strings"
2122

2223
corev1 "k8s.io/api/core/v1"
@@ -35,27 +36,26 @@ type scriptGeneratorHelper struct {
3536
scriptMountPath string
3637
}
3738

38-
func (helper *scriptGeneratorHelper) BuildConfigMap(ownerReference metav1.OwnerReference, configMapKey types.NamespacedName) *corev1.ConfigMap {
39+
func (helper *scriptGeneratorHelper) BuildConfigMap(dataset *datav1alpha1.Dataset, configMapKey types.NamespacedName) *corev1.ConfigMap {
3940
data := map[string]string{}
4041
data[helper.scriptFileName] = helper.scriptContent
4142
// data[helper.scriptFileName] = replacer.Replace(helper.scriptContent)
4243
return &corev1.ConfigMap{
4344
ObjectMeta: metav1.ObjectMeta{
44-
Name: configMapKey.Name,
45-
Namespace: configMapKey.Namespace,
46-
OwnerReferences: []metav1.OwnerReference{ownerReference},
45+
Name: configMapKey.Name,
46+
Namespace: configMapKey.Namespace,
4747
Labels: map[string]string{
48-
common.LabelAnnotationDatasetId: utils.GetDatasetId(configMapKey.Namespace, ownerReference.Name, string(ownerReference.UID)),
48+
common.LabelAnnotationDatasetId: utils.GetDatasetId(configMapKey.Namespace, dataset.Name, string(dataset.UID)),
4949
},
5050
},
5151
Data: data,
5252
}
5353
}
5454

55-
func (helper *scriptGeneratorHelper) GetConfigMapKeyByOwner(datasetKey types.NamespacedName, runtimeType string) types.NamespacedName {
55+
func (helper *scriptGeneratorHelper) GetNamespacedConfigMapKey(datasetKey types.NamespacedName, runtimeType string) types.NamespacedName {
5656
return types.NamespacedName{
5757
Namespace: datasetKey.Namespace,
58-
Name: datasetKey.Name + "-" + strings.ToLower(runtimeType) + "-" + helper.configMapName,
58+
Name: strings.ToLower(runtimeType) + "-" + helper.configMapName,
5959
}
6060
}
6161

pkg/common/label.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,12 @@ const (
7777
// "Sidecar": for only sidecar to skip check mount ready,
7878
AnnotationSkipCheckMountReadyTarget = LabelAnnotationPrefix + "skip-check-mount-ready-target"
7979

80+
// AnnotationEnableRuntimeSetConfigMap
81+
AnnotationEnableRuntimeSetConfig = "runtime." + LabelAnnotationPrefix + "enable-set-config"
82+
83+
// AnnotationEnableRuntimeSetConfigMap
84+
AnnotationEnableRuntimeHelmValueConfig = "runtime." + LabelAnnotationPrefix + "enable-helm-value-config"
85+
8086
// LabelAnnotationMountingDatasets is a label/annotation key indicating which datasets are currently being used by a pod.
8187
// i.e. fluid.io/datasets-in-use
8288
LabelAnnotationDatasetsInUse = LabelAnnotationPrefix + "datasets-in-use"

pkg/ddc/thin/dataset.go

Lines changed: 0 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,6 @@ import (
3131
)
3232

3333
func (t *ThinEngine) UpdateDatasetStatus(phase datav1alpha1.DatasetPhase) (err error) {
34-
runtime, err := t.getRuntime()
35-
if err != nil {
36-
return err
37-
}
38-
3934
// 2. update the dataset status
4035
err = retry.RetryOnConflict(retry.DefaultBackoff, func() error {
4136
dataset, err := utils.GetDataset(t.Client, t.name, t.namespace)
@@ -85,7 +80,6 @@ func (t *ThinEngine) UpdateDatasetStatus(phase datav1alpha1.DatasetPhase) (err e
8580
cond)
8681
}
8782

88-
datasetToUpdate.Status.CacheStates = runtime.Status.CacheStates
8983
if !reflect.DeepEqual(dataset.Status, datasetToUpdate.Status) {
9084
t.Log.V(1).Info("Update DatasetStatus", "dataset", fmt.Sprintf("%s/%s", datasetToUpdate.GetNamespace(), datasetToUpdate.GetName()))
9185
err = t.Client.Status().Update(context.TODO(), datasetToUpdate)
@@ -108,39 +102,6 @@ func (t *ThinEngine) UpdateDatasetStatus(phase datav1alpha1.DatasetPhase) (err e
108102
}
109103

110104
func (t *ThinEngine) UpdateCacheOfDataset() (err error) {
111-
runtime, err := t.getRuntime()
112-
if err != nil {
113-
return err
114-
}
115-
116-
// 2.update the dataset status
117-
err = retry.RetryOnConflict(retry.DefaultBackoff, func() error {
118-
dataset, err := utils.GetDataset(t.Client, t.name, t.namespace)
119-
if err != nil {
120-
return err
121-
}
122-
datasetToUpdate := dataset.DeepCopy()
123-
124-
datasetToUpdate.Status.CacheStates = runtime.Status.CacheStates
125-
126-
t.Log.Info("the dataset status", "status", datasetToUpdate.Status)
127-
128-
if !reflect.DeepEqual(dataset.Status, datasetToUpdate.Status) {
129-
t.Log.V(1).Info("Update RuntimeStatus", "runtime", fmt.Sprintf("%s/%s", runtime.GetNamespace(), runtime.GetName()))
130-
err = t.Client.Status().Update(context.TODO(), datasetToUpdate)
131-
return err
132-
} else {
133-
t.Log.Info("No need to update the cache of the data")
134-
}
135-
136-
return nil
137-
})
138-
139-
if err != nil {
140-
return utils.LoggingErrorExceptConflict(t.Log, err, "Failed to Update dataset",
141-
types.NamespacedName{Namespace: t.namespace, Name: t.name})
142-
}
143-
144105
return
145106
}
146107

0 commit comments

Comments
 (0)