summaryrefslogtreecommitdiff
path: root/data.d/k3s-master/manifests.d/tyilnet/cicd-system/resources/workflow-templates/util.yaml
blob: 465311b64e0768a7224574e3bb01a72558088faf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
---
apiVersion: argoproj.io/v1alpha1
kind: WorkflowTemplate
metadata:
  name: util
  namespace: cicd-system
spec:
  templates:
  - name: fetch-git
    inputs:
      parameters:
      - name: repo
        value: ""
      - name: ref
        value: "origin/master"
      - name: workingDir
        value: "/work"
      - name: workingPVC
        value: ""
    script:
      image: debian
      command:
      - dash
      source: |
        export DEBIAN_FRONTEND=noninteractive
        export GIT_WORK_TREE="{{inputs.parameters.workingDir}}"
        export GIT_DIR="$GIT_WORK_TREE/.git"

        apt update && apt install -y git

        git init
        git remote add origin "{{inputs.parameters.repo}}"
        git fetch origin -a
        git reset --hard "{{inputs.parameters.ref}}"
      volumeMounts:
      - name: workdir
        mountPath: "{{inputs.parameters.workingDir}}"
    volumes:
    - name: workdir
      persistentVolumeClaim:
        claimName: "{{inputs.parameters.workingPVC}}"

  - name: pvc-create
    inputs:
      parameters:
      - name: size
        value: 1Gi
      - name: storageClass
        value: longhorn
      - name: namePrefix
        value: argo-
    outputs:
      parameters:
      - name: name
        valueFrom:
          jsonPath: "{.metadata.name}"
    resource:
      action: create
      setOwnerReference: true
      manifest: |
        apiVersion: v1
        kind: PersistentVolumeClaim
        metadata:
          generateName: "{{inputs.parameters.namePrefix}}"
        spec:
          storageClassName: "{{inputs.parameters.storageClass}}"
          accessModes:
          - ReadWriteMany
          resources:
            requests:
              storage: "{{inputs.parameters.size}}"

  - name: pvc-delete
    inputs:
      parametes:
      - name: name
        value: ""
    resource:
      action: delete
      manifest: |
        apiVersion: v1
        kind: PersistentVolumeClaim
        metadata:
          name: "{{inputs.parameters.name}}"

  - name: qa-reuse
    inputs:
      parameters:
      - name: workingDir
        value: "/work"
      - name: workingPVC
        value: ""
    script:
      image: fsfe/reuse
      command:
      - sh
      source: |
        cd -- "{{inputs.parameters.workingDir}}"
        reuse lint
      volumeMounts:
      - name: workdir
        mountPath: "{{inputs.parameters.workingDir}}"
    volumes:
    - name: workdir
      persistentVolumeClaim:
        claimName: "{{inputs.parameters.workingPVC}}"
...