Browse Source

Merge pull request #371 from Franklin-Johnson/issue-354

Issue 354: Deploy Polyaxon
Lucas A. Wilson 3 years ago
parent
commit
f9a42e8b40

+ 20 - 0
platforms/polyaxon.yml

@@ -0,0 +1,20 @@
+#  Copyright 2020 Dell Inc. or its subsidiaries. All Rights Reserved.
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+---
+
+- name: Installing Polyaxon
+  hosts: manager
+  gather_facts: false
+  roles:
+    - polyaxon

+ 41 - 0
platforms/roles/polyaxon/files/polyaxon_config.yaml

@@ -0,0 +1,41 @@
+proxy:
+  secretToken: "1c8572f630701e8792bede122ec9c4179d9087f801e1a85ed32cce69887aec1b"
+
+hub:
+  cookieSecret: "1c8572f630701e8792bede122ec9c4179d9087f801e1a85ed32cce69887aec1b"
+  service:
+    type: LoadBalancer
+  db:
+    type: sqlite-pvc
+  extraConfig:
+    jupyterlab: |
+      c.Spawner.cmd = ['jupyter-labhub']
+singleuser:
+  image:
+    name: dellhpc/datasciencelab-base
+    tag: "1.0"
+  profileList:
+    - display_name: "DellHPC Improved Environment"
+      description: "Dell curated Jupyter Stacks"
+      kubespawner_override:
+        image: "dellhpc/datasciencelab-cpu:1.0"
+    - display_name: "DellHPC GPU Environment"
+      description: "Dell curated Jupyter Stacks 1 GPU"
+      kubespawner_override:
+        image: "dellhpc/datasciencelab-gpu:1.0"
+        extra_resource_limits:
+          nvidia.com/gpu: "1"
+  storage:
+    dynamic:
+      storageClass: nfs-client
+  cpu:
+    limit: 1
+  memory:
+    limit: 5G
+    guarantee: 1G
+  defaultUrl: "/lab"
+
+
+prePuller:
+  continuous:
+    enabled: true

+ 62 - 0
platforms/roles/polyaxon/tasks/main.yml

@@ -0,0 +1,62 @@
+#  Copyright 2020 Dell Inc. or its subsidiaries. All Rights Reserved.
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+---
+
+- name: Helm - add Polyaxon repo
+  command: "helm repo add polyaxon '{{ polyaxon_helm_chart_repo }}'"
+  changed_when: true
+
+- name: Helm - update repo
+  command: helm repo update
+  changed_when: true
+
+#- name: Copy Polyaxon custom config file
+  #copy:
+   #src: polyaxon_config.yaml
+   #dest: "{{ polyaxon_config_file_dest }}"
+   #owner: root
+   #group: root
+   #mode: "{{ polyaxon_config_file_mode }}"
+
+- name: Polyaxon deploy
+  block:
+    - name: Polyaxon deploy
+      command: >
+        helm upgrade --cleanup-on-fail \
+        --install {{ polyaxon_namespace }} polyaxon/polyaxon \
+        --namespace {{ polyaxon_namespace }} \
+        --create-namespace \
+        --version {{ helm_chart_version }} \
+#        --values {{ polyaxon_config_file_dest }} \
+        --timeout {{ timeout_min_sec }}
+      register: deployment_output
+
+  rescue:
+    - name: Polyaxon deployment error
+      debug:
+        msg: "Previous Polyaxon deployment is in progress"
+      when: "'another operation (install/upgrade/rollback) is in progress' in deployment_output.stderr"
+
+    - name: Delete existing release
+      command: helm delete '{{ polyaxon_namespace }}'
+
+    - name: Polyaxon deploy
+      command: >
+        helm upgrade --cleanup-on-fail \
+        --install {{ polyaxon_namespace }} polyaxon/polyaxon \
+        --namespace {{ polyaxon_namespace }} \
+        --create-namespace \
+        --version {{ helm_chart_version }} \
+#        --values {{ polyaxon_config_file_dest }} \
+        --timeout {{ timeout_min_sec }}

+ 25 - 0
platforms/roles/polyaxon/vars/main.yml

@@ -0,0 +1,25 @@
+#  Copyright 2020 Dell Inc. or its subsidiaries. All Rights Reserved.
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+---
+
+polyaxon_helm_chart_repo: https://charts.polyaxon.com
+polyaxon_config_file_dest: /root/k8s/polyaxon_config.yaml
+
+#jupyter_config_file_mode: 0655
+
+#helm_chart_version: 0.9.0
+
+timeout_min_sec: 60m
+
+polyaxon_namespace: polyaxon