Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions ansible/playbooks/saas/roles/milvus/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Role: `milvus`
1 change: 1 addition & 0 deletions ansible/playbooks/saas/roles/milvus/defaults/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
---
1 change: 1 addition & 0 deletions ansible/playbooks/saas/roles/milvus/tasks/backup.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
---
14 changes: 14 additions & 0 deletions ansible/playbooks/saas/roles/milvus/tasks/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
- name: Include upstream variables
ansible.builtin.include_vars: upstream.yml

- name: Set custom variables
ansible.builtin.set_fact:
image_version: "{{ latest_version }}"
image_name: "{{ image.name }}"
image_labels: "{{ image.labels }}"
image_build: "{{ image.build }}"

- name: End playbook if no new version
ansible.builtin.meta: end_host
when: softwares[image.name] is defined and softwares[image.name].version == image_version
11 changes: 11 additions & 0 deletions ansible/playbooks/saas/roles/milvus/tasks/destroy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
- name: Stop nomad job
ansible.builtin.include_role:
name: nomad
tasks_from: job_stop.yml

- name: Remove software directory
ansible.builtin.file:
path: "{{ software_path }}"
state: absent
delegate_to: "{{ software.instance }}"
39 changes: 39 additions & 0 deletions ansible/playbooks/saas/roles/milvus/tasks/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
- name: Create default directory
ansible.builtin.file:
path: "{{ item }}"
state: directory
owner: root
group: root
mode: "0755"
loop:
- "{{ software_path }}/milvus/config"
delegate_to: "{{ software.instance }}"

- name: Copy configuration files
ansible.builtin.template:
src: "{{ item.src }}"
dest: "{{ software_path }}/{{ item.dest }}"
owner: root
group: root
mode: '0644'
loop:
- src: milvus.yaml.j2
dest: milvus/config/embedEtcd.yaml
- src: user.yaml.j2
dest: milvus/config/user.yaml
delegate_to: "{{ software.instance }}"

- name: Copy nomad job
ansible.builtin.template:
src: nomad.hcl
dest: "/var/tmp/{{ domain }}.nomad"
owner: root
group: root
mode: '0600'
become: true

- name: Run nomad job
ansible.builtin.include_role:
name: nomad
tasks_from: job_run.yml
1 change: 1 addition & 0 deletions ansible/playbooks/saas/roles/milvus/tasks/restore.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
---
Empty file.
93 changes: 93 additions & 0 deletions ansible/playbooks/saas/roles/milvus/templates/nomad.hcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
job "{{ domain }}" {
region = "{{ fact_instance.region }}"
datacenters = ["{{ fact_instance.datacenter }}"]
type = "service"

{% if software.constraints is defined and software.constraints.location is defined %}
constraint {
attribute = "${meta.location}"
set_contains = "{{ software.constraints.location }}"
}
{% endif %}

constraint {
attribute = "${meta.instance}"
set_contains = "{{ software.instance }}"
}

group "{{ domain }}" {
count = 1

network {
port "milvus_19530" {
to = 19530
{% if software.static_port is defined %}
static = {{ software.static_port }}
{% endif %}
}
port "milvus_9091" {
to = 9091
}
port "milvus_2379" {
to = 2379
}
}

service {
name = "{{ service_name }}-milvus"
port = "milvus_19530"
provider = "nomad"
}

service {
name = "{{ service_name }}-webui"
port = "milvus_9091"
provider = "nomad"
tags = [
{{ lookup('template', '../../traefik/templates/traefik_tag.j2') | indent(8) }}
]
check {
type = "http"
path = "/healthz"
interval = "30s"
timeout = "20s"
}
}

task "{{ domain }}-milvus" {
driver = "docker"

config {
image = "milvusdb/milvus:v{{ softwares.milvus.version }}"
security_opt = [
"seccomp=unconfined"
]
volumes = [
"{{ software_path }}/var/lib/milvus:/var/lib/milvus:rw",
"{{ software_path }}/milvus/config:/milvus/config:rw"
]
ports = ["milvus_19530", "milvus_9091", "milvus_2379"]
command = "milvus"
args = [
"run", "standalone"
]
}

env {
TZ = "Europe/Paris"
MILVUS_LOG_LEVEL = "info"
ETCD_USE_EMBED = "true"
ETCD_DATA_DIR = "/var/lib/milvus/etcd"
ETCD_CONFIG_PATH = "/milvus/config/embedEtcd.yaml"
COMMON_STORAGETYPE = "local"
DEPLOY_MODE = "STANDALONE"
}

resources {
cpu = {{ size[software.size].cpu }}
memory = {{ size[software.size].memory }}
memory_max = {{ size[software.size].memory * 2 }}
}
}
}
}
3 changes: 3 additions & 0 deletions ansible/playbooks/saas/roles/milvus/templates/user.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Extra config to override default milvus.yaml
proxy:
healthCheckTimeout: 1000 # ms, the interval that to do component healthy check
13 changes: 13 additions & 0 deletions ansible/playbooks/saas/roles/milvus/vars/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
image:
build: false
upstream:
source: github
user: milvus-io
repo: milvus
type: releases
format: deb
file: milvus_VERSION_ARCH.FORMAT
os: linux
labels: {}
name: milvus
3 changes: 3 additions & 0 deletions ansible/playbooks/saas/roles/milvus/vars/upstream.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
upstream_versions: "{{ (lookup('url', 'https://api.github.com/repos/' + image.upstream.user + '/' + image.upstream.repo + '/tags', headers={'Accept': 'application/vnd.github+json', 'Authorization': 'Bearer ' + lookup('ansible.builtin.env', 'GITHUB_API_TOKEN') })) }}"
latest_version: "{{ upstream_versions | community.general.json_query('[].name') | select('match', '^(v|r)?\\d{1,4}(\\.\\d{1,4})(\\.\\d{1,4})$') | community.general.version_sort | last | replace('v', '') }}"
Binary file added ui/public/img/milvus.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.