Skip to content

Commit

Permalink
Merge pull request apache#242 from hechao-ustc/multi_secret_0910
Browse files Browse the repository at this point in the history
Support multi secret
  • Loading branch information
intelligentfu8 authored Nov 27, 2024
2 parents 234dc18 + cb87526 commit c29e991
Show file tree
Hide file tree
Showing 13 changed files with 393 additions and 9 deletions.
14 changes: 14 additions & 0 deletions api/doris/v1/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -218,6 +218,10 @@ type BaseSpec struct {
//Security context for all containers running in the pod (unless they override it).
//+optional
ContainerSecurityContext *corev1.SecurityContext `json:"containerSecurityContext,omitempty"`

// Multi Secret for pod.
// +optional
Secrets []Secret `json:"secrets,omitempty"`
}

type SystemInitialization struct {
Expand Down Expand Up @@ -291,6 +295,16 @@ type MountConfigMapInfo struct {
MountPath string `json:"mountPath,omitempty"`
}

type Secret struct {
// name of secret that needs to mount.
SecretName string `json:"secretName,omitempty"`

// Current Secret Mount Path, default is "/etc/doris"
// If Secret belongs to the same Secrets, their mountPath can't be repeated.
// +optional
MountPath string `json:"mountPath,omitempty"`
}

// ExportService consisting of expose ports for user access to software service.
type ExportService struct {
//type of service,the possible value for the service type are : ClusterIP, NodePort, LoadBalancer,ExternalName.
Expand Down
20 changes: 20 additions & 0 deletions api/doris/v1/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

56 changes: 56 additions & 0 deletions config/crd/bases/crds.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1557,6 +1557,20 @@ spec:
otherwise to an implementation-defined value.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
type: object
secrets:
description: Multi Secret for pod.
items:
properties:
mountPath:
description: Current Secret Mount Path, default is "/etc/doris"
If Secret belongs to the same Secrets, their MountPath
can't be repeated.
type: string
secretName:
description: name of secret that needs to mount.
type: string
type: object
type: array
securityContext:
description: Security context for pod.
properties:
Expand Down Expand Up @@ -3344,6 +3358,20 @@ spec:
otherwise to an implementation-defined value.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
type: object
secrets:
description: Multi Secret for pod.
items:
properties:
mountPath:
description: Current Secret Mount Path, default is "/etc/doris"
If Secret belongs to the same Secrets, their MountPath
can't be repeated.
type: string
secretName:
description: name of secret that needs to mount.
type: string
type: object
type: array
securityContext:
description: Security context for pod.
properties:
Expand Down Expand Up @@ -5748,6 +5776,20 @@ spec:
otherwise to an implementation-defined value.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
type: object
secrets:
description: Multi Secret for pod.
items:
properties:
mountPath:
description: Current Secret Mount Path, default is "/etc/doris"
If Secret belongs to the same Secrets, their MountPath
can't be repeated.
type: string
secretName:
description: name of secret that needs to mount.
type: string
type: object
type: array
securityContext:
description: Security context for pod.
properties:
Expand Down Expand Up @@ -7535,6 +7577,20 @@ spec:
otherwise to an implementation-defined value.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
type: object
secrets:
description: Multi Secret for pod.
items:
properties:
mountPath:
description: Current Secret Mount Path, default is "/etc/doris"
If Secret belongs to the same Secrets, their MountPath
can't be repeated.
type: string
secretName:
description: name of secret that needs to mount.
type: string
type: object
type: array
securityContext:
description: Security context for pod.
properties:
Expand Down
56 changes: 56 additions & 0 deletions config/crd/bases/doris.apache.com_dorisclusters.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1557,6 +1557,20 @@ spec:
otherwise to an implementation-defined value.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
type: object
secrets:
description: Multi Secret for pod.
items:
properties:
mountPath:
description: Current Secret Mount Path, default is "/etc/doris"
If Secret belongs to the same Secrets, their MountPath
can't be repeated.
type: string
secretName:
description: name of secret that needs to mount.
type: string
type: object
type: array
securityContext:
description: Security context for pod.
properties:
Expand Down Expand Up @@ -3344,6 +3358,20 @@ spec:
otherwise to an implementation-defined value.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
type: object
secrets:
description: Multi Secret for pod.
items:
properties:
mountPath:
description: Current Secret Mount Path, default is "/etc/doris"
If Secret belongs to the same Secrets, their MountPath
can't be repeated.
type: string
secretName:
description: name of secret that needs to mount.
type: string
type: object
type: array
securityContext:
description: Security context for pod.
properties:
Expand Down Expand Up @@ -5748,6 +5776,20 @@ spec:
otherwise to an implementation-defined value.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
type: object
secrets:
description: Multi Secret for pod.
items:
properties:
mountPath:
description: Current Secret Mount Path, default is "/etc/doris"
If Secret belongs to the same Secrets, their MountPath
can't be repeated.
type: string
secretName:
description: name of secret that needs to mount.
type: string
type: object
type: array
securityContext:
description: Security context for pod.
properties:
Expand Down Expand Up @@ -7535,6 +7577,20 @@ spec:
otherwise to an implementation-defined value.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
type: object
secrets:
description: Multi Secret for pod.
items:
properties:
mountPath:
description: Current Secret Mount Path, default is "/etc/doris"
If Secret belongs to the same Secrets, their MountPath
can't be repeated.
type: string
secretName:
description: name of secret that needs to mount.
type: string
type: object
type: array
securityContext:
description: Security context for pod.
properties:
Expand Down
56 changes: 56 additions & 0 deletions config/crd/bases/doris.selectdb.com_dorisclusters.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1557,6 +1557,20 @@ spec:
otherwise to an implementation-defined value.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
type: object
secrets:
description: Multi Secret for pod.
items:
properties:
mountPath:
description: Current Secret Mount Path, default is "/etc/doris"
If Secret belongs to the same Secrets, their MountPath
can't be repeated.
type: string
secretName:
description: name of secret that needs to mount.
type: string
type: object
type: array
securityContext:
description: Security context for pod.
properties:
Expand Down Expand Up @@ -3344,6 +3358,20 @@ spec:
otherwise to an implementation-defined value.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
type: object
secrets:
description: Multi Secret for pod.
items:
properties:
mountPath:
description: Current Secret Mount Path, default is "/etc/doris"
If Secret belongs to the same Secrets, their MountPath
can't be repeated.
type: string
secretName:
description: name of secret that needs to mount.
type: string
type: object
type: array
securityContext:
description: Security context for pod.
properties:
Expand Down Expand Up @@ -5748,6 +5776,20 @@ spec:
otherwise to an implementation-defined value.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
type: object
secrets:
description: Multi Secret for pod.
items:
properties:
mountPath:
description: Current Secret Mount Path, default is "/etc/doris"
If Secret belongs to the same Secrets, their MountPath
can't be repeated.
type: string
secretName:
description: name of secret that needs to mount.
type: string
type: object
type: array
securityContext:
description: Security context for pod.
properties:
Expand Down Expand Up @@ -7535,6 +7577,20 @@ spec:
otherwise to an implementation-defined value.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
type: object
secrets:
description: Multi Secret for pod.
items:
properties:
mountPath:
description: Current Secret Mount Path, default is "/etc/doris"
If Secret belongs to the same Secrets, their MountPath
can't be repeated.
type: string
secretName:
description: name of secret that needs to mount.
type: string
type: object
type: array
securityContext:
description: Security context for pod.
properties:
Expand Down
67 changes: 67 additions & 0 deletions doc/examples/doriscluster-sample-secret.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# 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.

# this yaml describe `secret` config in DorisCluster CRD.
#Compareed to `doriscluster-sample.yaml`, It have `secret` config for fe
apiVersion: v1
kind: Secret
metadata:
name: db-user
type: Opaque
data:
user: cm9vdAo=
---
apiVersion: v1
kind: Secret
metadata:
name: db-pass
type: Opaque
data:
password: MTIzNDU2Cg==
---
apiVersion: doris.selectdb.com/v1
kind: DorisCluster
metadata:
labels:
app.kubernetes.io/name: doriscluster
app.kubernetes.io/instance: doriscluster-sample-secret
app.kubernetes.io/part-of: doris-operator
name: doriscluster-sample-secret
spec:
feSpec:
replicas: 3
image: selectdb/doris.fe-ubuntu:2.1.1
limits:
cpu: 8
memory: 16Gi
requests:
cpu: 8
memory: 16Gi
secrets:
- secretName: db-user
mountPath: /etc/doris
- secretName: db-pass
mountPath: /opt/doris
beSpec:
replicas: 3
image: selectdb/doris.be-ubuntu:2.1.1
limits:
cpu: 8
memory: 16Gi
requests:
cpu: 8
memory: 16Gi
Loading

0 comments on commit c29e991

Please sign in to comment.