From 34be26c01159896d5a71ff83d9a63242faf32012 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B3=80=EC=A0=95=ED=9B=88?= Date: Tue, 31 Jan 2023 05:14:21 +0000 Subject: [PATCH] sendmail.yaml add --- clustertask/sendmail.yaml | 88 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 clustertask/sendmail.yaml diff --git a/clustertask/sendmail.yaml b/clustertask/sendmail.yaml new file mode 100644 index 0000000..b2cfafd --- /dev/null +++ b/clustertask/sendmail.yaml @@ -0,0 +1,88 @@ +apiVersion: tekton.dev/v1beta1 +kind: ClusterTask +metadata: + name: sendmail + labels: + app.kubernetes.io/version: "0.1" + annotations: + tekton.dev/pipelines.minVersion: "0.12.1" + tekton.dev/categories: Messaging + tekton.dev/tags: mail + tekton.dev/displayName: "send mail" + tekton.dev/platforms: "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64" +spec: + description: >- + This task sends a simple email to receivers via SMTP server + + params: + - name: server + type: string + description: secret name for SMTP server information (url, port, password) + - name: subject + type: string + description: plain text email subject + - name: body + type: string + description: plain text email body + - name: sender + type: string + description: sender email address + - name: recipients + type: string + description: recipient email addresses (space delimited list) + steps: + - name: send + image: docker.io/library/python:3.8-alpine@sha256:e11bbd37d4371894e954421b85dbe8dd4eb7198d7cb4ed144ab529f19f57c3f1 #tag: 3.8-alpine + script: | + #!/usr/bin/env python3 + import smtplib, ssl, os + port = os.getenv('PORT') + smtp_server = os.getenv('SERVER') + sender_email = "$(params.sender)" + receiver_emails = "$(params.recipients)" + user = os.getenv('USER') + password = os.getenv('PASSWORD') + tls = os.getenv('TLS') + message = f"""\ + Subject: $(params.subject) + To: {receiver_emails} + From: {sender_email} + + $(params.body)""" + print(message) + if tls == 'True': + context = ssl.create_default_context() + server = smtplib.SMTP_SSL(smtp_server, port, context=context) + else: + server = smtplib.SMTP(smtp_server, port) + if password != '': + server.login(user, password) + for receiver in [item for item in receiver_emails.split(' ') if item]: + server.sendmail(sender_email, receiver, message.encode('utf-8')) + server.quit() + env: + - name: USER + valueFrom: + secretKeyRef: + name: $(params.server) + key: user + - name: PASSWORD + valueFrom: + secretKeyRef: + name: $(params.server) + key: password + - name: TLS + valueFrom: + secretKeyRef: + name: $(params.server) + key: tls + - name: SERVER + valueFrom: + secretKeyRef: + name: $(params.server) + key: url + - name: PORT + valueFrom: + secretKeyRef: + name: $(params.server) + key: port \ No newline at end of file