From 57d1305db9f032c94949b719f0dc052ac7cd2d41 Mon Sep 17 00:00:00 2001 From: hthieu Date: Thu, 1 Jul 2021 20:03:09 +0200 Subject: Support pre/post install/delete hooks   MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update instance create and delete handler to support pre/post install/delete hooks.  Add hook.go: to execute and delete hook (base on delete policy).  Implement watchUntilReady in generic plugin to wait for readiness of hook rss. Add hook_sorter.go: to sort hook based on weight. User can define timeout for each type of hooks in overwrite-values. Variable name is k8s-rb-instance-pre-install-timeout (default 60s), k8s-rb-instance-post-install-timeout (default 600s), k8s-rb-instance-pre-delete-timeout (default 60s) and k8s-rb-instance-post-delete-timeout (600s). This is timeout for each hook of a hook event (not a total time). Add recovery capability to continue the execution of instantiation (create or delete) when the plugin stop unexpectedly. For now, this is disabled because we have data-race issue during test. Will enable when we find the solution. Add basic test for hooks (in hook_test.go) Add test for hook in instance_test For instance get request, we can request for full data by adding query param to the request: full=true. Issue-ID: MULTICLOUD-1347 Signed-off-by: hthieu Change-Id: If2b4a90831b9bfce1af8b926e4062a7d706bee08 --- src/k8splugin/mock_files/mock_yamls/job.yaml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/k8splugin/mock_files/mock_yamls/job.yaml (limited to 'src/k8splugin/mock_files/mock_yamls/job.yaml') diff --git a/src/k8splugin/mock_files/mock_yamls/job.yaml b/src/k8splugin/mock_files/mock_yamls/job.yaml new file mode 100644 index 00000000..e2028f40 --- /dev/null +++ b/src/k8splugin/mock_files/mock_yamls/job.yaml @@ -0,0 +1,23 @@ +apiVersion: batch/v1 +kind: Job +metadata: + name: job + labels: + app: job + annotations: + "helm.sh/hook": post-install + "helm.sh/hook-weight": "-8" + "helm.sh/hook-delete-policy": hook-succeeded +spec: + backoffLimit: 3 + template: + metadata: + labels: + app: job + spec: + shareProcessNamespace: true + restartPolicy: Never + containers: + - name: sleep-container + image: "busybox" + command: ["sleep", "10"] \ No newline at end of file -- cgit 1.2.3-korg