1. Copy the code below into a file named mssql.yaml
2. Apply the deployment file to your kubernetes cluster using:
sed -i s/TXlDMG05bCZ4UEBzc3cwcmQ=/$(pwgen -s 120 1 | base64 -w 0)/ mssql.yaml; kubectl apply -f mssql.yaml
Note: username and password are base64 encoded and NOT encrypted.
Therefore do not store your credentials this way in a production environment, use
read -sep "Enter mssql sa password: " mssql_sa_pass; kubectl create secret generic mssql2 --from-literal=password=$mssql_sa_pass --type=kubernetes.io/basic-auth
instead of adding it to the deployment yaml file.
apiVersion: v1 data: username: c2EK password: TXlDMG05bCZ4UEBzc3cwcmQ= kind: Secret metadata: name: mssql type: kubernetes.io/basic-auth --- apiVersion: apps/v1 kind: Deployment metadata: name: mssql-deployment spec: replicas: 1 selector: matchLabels: app: mssql template: metadata: labels: app: mssql spec: terminationGracePeriodSeconds: 10 containers: - name: mssql image: mcr.microsoft.com/mssql/server:latest ports: - containerPort: 1433 env: - name: MSSQL_PID value: "Developer" - name: ACCEPT_EULA value: "Y" - name: SA_PASSWORD valueFrom: secretKeyRef: name: mssql key: password volumeMounts: - name: mssql mountPath: /var/opt/mssql volumes: - name: mssql hostPath: path: /srv/mssql type: DirectoryOrCreate initContainers: - name: install image: busybox command: - chown - "10001:10001" - "/work-dir" volumeMounts: - name: mssql mountPath: "/work-dir" --- apiVersion: v1 kind: Service metadata: name: mssql-deployment spec: selector: app: mssql ports: - protocol: TCP port: 1433 targetPort: 1433 type: LoadBalancer