iT邦幫忙

2024 iThome 鐵人賽

DAY 27
0
DevOps

從 AWS 轉生到 GCP 世界,還順便轉職成 DevOps 的 SRE系列 第 27

將 Infra 從 Code-Base 改為 Cloud-Resource-Base Part6

  • 分享至 

  • xImage
  •  

在將 image 直接轉成線上可用的環境時,我們有注意到 docker run 原本的方式是會從 docker in docker 帶入 .env 檔。為了安全考量以及提高可調整性,我們會將它轉為 configmap。

過往 run 的 code

docker run \
-p 8080:80  \
-v ./secrets:/secrets \
--entrypoint bash \
--env-file .env \
--gpus all \
-it --rm image:{version}-release 

這邊的 .env 用幾個不重要的給大家做參考

USE_SUBPROCESS=1
MAX_MESSAGE=1

轉換方式是直接將 .env 改成 configmap.yaml

apiVersion: v1
kind: ConfigMap
metadata:
  name: project-config
data:
  USE_SUBPROCESS: "1"
  MAX_MESSAGE: "1"

然後執行

kubectl apply -f configmap.yaml

如果我們是 job yaml 就會長這樣

apiVersion: batch/v1
kind: Job
metadata:
  name: project-job
spec:
  backoffLimit: 4
  ttlSecondsAfterFinished: 3600
  template:
    spec:
      containers:
      - name: project-extraction
        envFrom:
        - configMapRef:
            name: project-config

但因為我們是用 cloudfunction 觸發,所以會改成

job = client.V1Job(
            api_version="batch/v1",
            kind="Job",
            metadata=client.V1ObjectMeta(name=job_name),
            spec=client.V1JobSpec(
                template=client.V1PodTemplateSpec(
                    spec=client.V1PodSpec(
                        containers=[
                            client.V1Container(
                                name=container_name,
                                env_from=[
                                    client.V1EnvFromSource(
                                        config_map_ref=client.V1ConfigMapEnvSource(
                                            name="project-config"
                                        )
                                    )
                                ]
                            )
                        ]
        )

上一篇
將 Infra 從 Code-Base 改為 Cloud-Resource-Base 外傳 pipreqs
下一篇
將 Infra 從 Code-Base 改為 Cloud-Resource-Base Part7
系列文
從 AWS 轉生到 GCP 世界,還順便轉職成 DevOps 的 SRE30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言