--- # tasks file for api - name: Create a config map for api vars: httpd_server_name: "api.eom.dev" httpd_conf_extra: - httpd-auth.conf - httpd-wsgi.conf k8s: state: present api_version: v1 kind: ConfigMap name: api namespace: "eom-{{ target_namespace }}" definition: data: httpd.conf: "{{ lookup('template', 'httpd.conf.j2') }}" httpd-auth.conf: "{{ lookup('template', 'httpd-auth.conf.j2') }}" httpd-wsgi.conf: "{{ lookup('file', 'httpd-wsgi.conf') }}" mime.types: "{{ lookup('file', 'mime.types') }}" - name: Create a deployment k8s: definition: apiVersion: v1 kind: Deployment metadata: name: api namespace: "eom-{{ target_namespace }}" spec: replicas: 1 selector: matchLabels: app: api template: metadata: labels: app: api spec: containers: - name: api image: ericomeehan/api volumeMounts: - name: config mountPath: /usr/local/apache2/conf ports: - containerPort: 80 volumes: - name: config configMap: name: api - name: Expose deployment as a service k8s: definition: apiVersion: v1 kind: Service metadata: name: api namespace: "eom-{{ target_namespace }}" spec: selector: app: api ports: - port: 80 name: api-80 type: ClusterIP