apiVersion: v1 kind: ConfigMap metadata: name: opentofu-nginx data: default.conf: | server { listen 8080; server_name _; auth_basic "OpenTofu"; auth_basic_user_file /etc/nginx/auth/auth; location / { root /usr/share/nginx/html; index index.html; } } index.html: | OpenTofu

OpenTofu Pipeline Ready

This service hosts the OpenTofu control plane for Knoe deployments.

Pipeline root (on disk): deploy/opentofu/k3s

--- apiVersion: apps/v1 kind: Deployment metadata: name: opentofu labels: app: opentofu spec: replicas: 1 selector: matchLabels: app: opentofu template: metadata: labels: app: opentofu spec: containers: - name: opentofu-ui image: nginx:1.27-alpine ports: - name: http containerPort: 8080 volumeMounts: - name: nginx-config mountPath: /etc/nginx/conf.d - name: ui-content mountPath: /usr/share/nginx/html - name: opentofu-auth mountPath: /etc/nginx/auth readOnly: true - name: opentofu-runner image: ghcr.io/opentofu/opentofu:1.8.2 command: ["sh", "-c", "tofu version && tail -f /dev/null"] env: - name: OPENTOFU_ADMIN_PASSWORD valueFrom: secretKeyRef: name: opentofu-admin key: admin_password volumes: - name: nginx-config configMap: name: opentofu-nginx items: - key: default.conf path: default.conf - name: ui-content configMap: name: opentofu-nginx items: - key: index.html path: index.html - name: opentofu-auth secret: secretName: opentofu-admin items: - key: auth path: auth --- apiVersion: v1 kind: Service metadata: name: opentofu spec: type: LoadBalancer selector: app: opentofu ports: - name: http port: 8080 targetPort: http