api/disaggregated/v1/unique_id.go (49 lines of code) (raw):

// Licensed to the Apache Software Foundation (ASF) under one // or more contributor license agreements. See the NOTICE file // distributed with this work for additional information // regarding copyright ownership. The ASF licenses this file // to you under the Apache License, Version 2.0 (the // "License"); you may not use this file except in compliance // with the License. You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, // software distributed under the License is distributed on an // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY // KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. package v1 import ( "crypto/sha256" "math/big" "strings" ) /* please use get function to replace new function. */ func (ddc *DorisDisaggregatedCluster) GetCGStatefulsetName(cg *ComputeGroup) string { //uniqueID use "_", but name in kubernetes object use "-" stName := ddc.Name + "-" + cg.UniqueId return strings.ReplaceAll(stName, "_", "-") } func (ddc *DorisDisaggregatedCluster) GetInstanceHashId() int64 { instanceId := ddc.Namespace + "-" + ddc.Name hasher := sha256.New() hasher.Write([]byte(instanceId)) hashBytes := hasher.Sum(nil) hashInt := new(big.Int).SetBytes(hashBytes) rangeStart := big.NewInt(1000000000) rangeEnd := big.NewInt(2000000000) rangeSize := new(big.Int).Sub(rangeEnd, rangeStart) hashMod := new(big.Int).Mod(hashInt, rangeSize) res := new(big.Int).Add(hashMod, rangeStart) return res.Int64() } func (ddc *DorisDisaggregatedCluster) GetFEStatefulsetName() string { return ddc.Name + "-" + "fe" } func (ddc *DorisDisaggregatedCluster) GetMSStatefulsetName() string { return ddc.Name + "-" + "ms" } func (ddc *DorisDisaggregatedCluster) GetCGServiceName(cg *ComputeGroup) string { svcName := ddc.Name + "-" + cg.UniqueId svcName = strings.ReplaceAll(svcName, "_", "-") return svcName } func (ddc *DorisDisaggregatedCluster) GetFEServiceName() string { return ddc.Name + "-" + "fe" } func (ddc *DorisDisaggregatedCluster) GetFEVIPAddresss() string { return ddc.GetFEServiceName() + "." + ddc.Namespace } func (ddc *DorisDisaggregatedCluster) GetFEInternalServiceName() string { return ddc.Name + "-" + "fe-internal" } func (ddc *DorisDisaggregatedCluster) GetMSServiceName() string { return ddc.Name + "-" + "ms" } func (ddc *DorisDisaggregatedCluster) GetCGName(cg *ComputeGroup) string { // use uniqueId as compute group name, the uniqueId restrict not empty, and the computegroup's name should use "_" not "-" return strings.ReplaceAll(cg.UniqueId, "-", "_") }