ちょっとしたスクリプトを k8s で動かす

Created:
2022-04-20

kubernetes でちょっとしたものを動かしたい。 しかしながら、そのためにコンテナを作るのはちょっと手間だな、というときがあります。 私にはあるんです。

そういうときになんとかするための command に python -c をつかってなんとかするサンプル。

piVersion: apps/v1
kind: Deployment
metadata:
  name: sendmail
  namespace: my-sandbox
  labels:
    app: sendmail
spec:
  replicas: 1
  template:
    metadata:
      name: sendmail
      labels:
        app: sendmail
    spec:
      containers:
        - name: sendmail
          image: python
          imagePullPolicy: IfNotPresent
          envFrom:
            - configMapRef:
              name: sendmail-configmap
          command:
            - "python"
            - "-c"
            - >
              import smtplib, os, time, datetime

              while True:
                  time.sleep(1)
                  fromaddr = os.environ.get('FROM_ADDR')
                  toaddr = os.environ.get('TO_ADDR')
                  msg = "From: {0}\r\nTo: {1}\r\n\r\nHello, This is a mail body.\r\n{2}\r\n".format(fromaddr, toaddr, datetime.datetime.now())

                  try:
                     server = smtplib.SMTP(os.environ.get('SMTP_HOST'), os.environ.get('SMTP_PORT'))
                     server.set_debuglevel(1)
                     server.sendmail(fromaddr, toaddr, msg)
                     server.quit()
                  except smtplib.SMTPException as e:
                     print(e)
      restartPolicy: Always
  selector:
    matchLabels:
      app: sendmail