You've already forked helm-actions
							
							chore: add templates, unittests and workflows
This commit is contained in:
		
							
								
								
									
										69
									
								
								unittests/01-consistency-checks.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								unittests/01-consistency-checks.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,69 @@
 | 
			
		||||
suite: actions template | consistency checks
 | 
			
		||||
release:
 | 
			
		||||
  name: gitea-unittests
 | 
			
		||||
  namespace: testing
 | 
			
		||||
templates:
 | 
			
		||||
  - templates/gitea/act_runner/01-consistency-checks.yaml
 | 
			
		||||
tests:
 | 
			
		||||
  - it: fails when provisioning is enabled BUT persistence is completely disabled
 | 
			
		||||
    set:
 | 
			
		||||
      persistence:
 | 
			
		||||
        enabled: false
 | 
			
		||||
      actions:
 | 
			
		||||
        enabled: true
 | 
			
		||||
        provisioning:
 | 
			
		||||
          enabled: true
 | 
			
		||||
    asserts:
 | 
			
		||||
      - failedTemplate:
 | 
			
		||||
          errorMessage: "persistence.enabled and persistence.mount are required when provisioning is enabled"
 | 
			
		||||
  - it: fails when provisioning is enabled BUT mount is disabled, although persistence is enabled
 | 
			
		||||
    set:
 | 
			
		||||
      persistence:
 | 
			
		||||
        enabled: true
 | 
			
		||||
        mount: false
 | 
			
		||||
      actions:
 | 
			
		||||
        enabled: true
 | 
			
		||||
        provisioning:
 | 
			
		||||
          enabled: true
 | 
			
		||||
    asserts:
 | 
			
		||||
      - failedTemplate:
 | 
			
		||||
          errorMessage: "persistence.enabled and persistence.mount are required when provisioning is enabled"
 | 
			
		||||
  - it: fails when provisioning is enabled AND existingSecret is given
 | 
			
		||||
    set:
 | 
			
		||||
      actions:
 | 
			
		||||
        enabled: true
 | 
			
		||||
        provisioning:
 | 
			
		||||
          enabled: true
 | 
			
		||||
        existingSecret: "secret-reference"
 | 
			
		||||
    asserts:
 | 
			
		||||
      - failedTemplate:
 | 
			
		||||
          errorMessage: "Can't specify both actions.provisioning.enabled and actions.existingSecret"
 | 
			
		||||
  - it: fails when provisioning is disabled BUT existingSecret and existingSecretKey are missing
 | 
			
		||||
    set:
 | 
			
		||||
      actions:
 | 
			
		||||
        enabled: true
 | 
			
		||||
        provisioning:
 | 
			
		||||
          enabled: false
 | 
			
		||||
    asserts:
 | 
			
		||||
      - failedTemplate:
 | 
			
		||||
          errorMessage: "actions.existingSecret and actions.existingSecretKey are required when provisioning is disabled"
 | 
			
		||||
  - it: fails when provisioning is disabled BUT existingSecretKey is missing
 | 
			
		||||
    set:
 | 
			
		||||
      actions:
 | 
			
		||||
        enabled: true
 | 
			
		||||
        provisioning:
 | 
			
		||||
          enabled: false
 | 
			
		||||
        existingSecret: "my-secret"
 | 
			
		||||
    asserts:
 | 
			
		||||
      - failedTemplate:
 | 
			
		||||
          errorMessage: "actions.existingSecret and actions.existingSecretKey are required when provisioning is disabled"
 | 
			
		||||
  - it: fails when provisioning is disabled BUT existingSecret is missing
 | 
			
		||||
    set:
 | 
			
		||||
      actions:
 | 
			
		||||
        enabled: true
 | 
			
		||||
        provisioning:
 | 
			
		||||
          enabled: false
 | 
			
		||||
        existingSecretKey: "my-secret-key"
 | 
			
		||||
    asserts:
 | 
			
		||||
      - failedTemplate:
 | 
			
		||||
          errorMessage: "actions.existingSecret and actions.existingSecretKey are required when provisioning is disabled"
 | 
			
		||||
							
								
								
									
										45
									
								
								unittests/config-act-runner.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								unittests/config-act-runner.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,45 @@
 | 
			
		||||
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
 | 
			
		||||
suite: actions template | config-act-runner
 | 
			
		||||
release:
 | 
			
		||||
  name: gitea-unittests
 | 
			
		||||
  namespace: testing
 | 
			
		||||
templates:
 | 
			
		||||
  - templates/gitea/act_runner/config-act-runner.yaml
 | 
			
		||||
tests:
 | 
			
		||||
  - it: doesn't renders a ConfigMap by default
 | 
			
		||||
    template: templates/gitea/act_runner/config-act-runner.yaml
 | 
			
		||||
    asserts:
 | 
			
		||||
      - hasDocuments:
 | 
			
		||||
          count: 0
 | 
			
		||||
  - it: renders a ConfigMap
 | 
			
		||||
    template: templates/gitea/act_runner/config-act-runner.yaml
 | 
			
		||||
    set:
 | 
			
		||||
      actions:
 | 
			
		||||
        enabled: true
 | 
			
		||||
        statefulset:
 | 
			
		||||
          actRunner:
 | 
			
		||||
            config: |
 | 
			
		||||
              log:
 | 
			
		||||
                level: info
 | 
			
		||||
              cache:
 | 
			
		||||
                enabled: false
 | 
			
		||||
              runner:
 | 
			
		||||
                labels:
 | 
			
		||||
                  - "ubuntu-latest"
 | 
			
		||||
    asserts:
 | 
			
		||||
      - hasDocuments:
 | 
			
		||||
          count: 1
 | 
			
		||||
      - containsDocument:
 | 
			
		||||
          kind: ConfigMap
 | 
			
		||||
          apiVersion: v1
 | 
			
		||||
          name: gitea-unittests-act-runner-config
 | 
			
		||||
      - equal:
 | 
			
		||||
          path: data["config.yaml"]
 | 
			
		||||
          value: |
 | 
			
		||||
            log:
 | 
			
		||||
              level: info
 | 
			
		||||
            cache:
 | 
			
		||||
              enabled: false
 | 
			
		||||
            runner:
 | 
			
		||||
              labels:
 | 
			
		||||
                - "ubuntu-latest"
 | 
			
		||||
							
								
								
									
										49
									
								
								unittests/config-scripts.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								unittests/config-scripts.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,49 @@
 | 
			
		||||
suite: actions template | config-scripts
 | 
			
		||||
release:
 | 
			
		||||
  name: gitea-unittests
 | 
			
		||||
  namespace: testing
 | 
			
		||||
templates:
 | 
			
		||||
  - templates/gitea/act_runner/config-scripts.yaml
 | 
			
		||||
tests:
 | 
			
		||||
  - it: renders a ConfigMap when all criteria are met
 | 
			
		||||
    template: templates/gitea/act_runner/config-scripts.yaml
 | 
			
		||||
    set:
 | 
			
		||||
      actions:
 | 
			
		||||
        enabled: true
 | 
			
		||||
        provisioning:
 | 
			
		||||
          enabled: true
 | 
			
		||||
      persistence:
 | 
			
		||||
        enabled: true
 | 
			
		||||
        mount: true
 | 
			
		||||
    asserts:
 | 
			
		||||
      - hasDocuments:
 | 
			
		||||
          count: 1
 | 
			
		||||
      - containsDocument:
 | 
			
		||||
          kind: ConfigMap
 | 
			
		||||
          apiVersion: v1
 | 
			
		||||
          name: gitea-unittests-scripts
 | 
			
		||||
      - isNotNullOrEmpty:
 | 
			
		||||
          path: data["token.sh"]
 | 
			
		||||
  - it: doesn't renders a ConfigMap by default
 | 
			
		||||
    template: templates/gitea/act_runner/config-scripts.yaml
 | 
			
		||||
    asserts:
 | 
			
		||||
      - hasDocuments:
 | 
			
		||||
          count: 0
 | 
			
		||||
  - it: doesn't renders a ConfigMap with disabled actions but enabled provisioning
 | 
			
		||||
    template: templates/gitea/act_runner/config-scripts.yaml
 | 
			
		||||
    asserts:
 | 
			
		||||
      - hasDocuments:
 | 
			
		||||
          count: 0
 | 
			
		||||
  - it: doesn't renders a ConfigMap with disabled actions but otherwise met criteria
 | 
			
		||||
    template: templates/gitea/act_runner/config-scripts.yaml
 | 
			
		||||
    set:
 | 
			
		||||
      actions:
 | 
			
		||||
        enabled: false
 | 
			
		||||
        provisioning:
 | 
			
		||||
          enabled: true
 | 
			
		||||
      persistence:
 | 
			
		||||
        enabled: true
 | 
			
		||||
        mount: true
 | 
			
		||||
    asserts:
 | 
			
		||||
      - hasDocuments:
 | 
			
		||||
          count: 0
 | 
			
		||||
							
								
								
									
										53
									
								
								unittests/helm/actions-config.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								unittests/helm/actions-config.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,53 @@
 | 
			
		||||
suite: config template | actions config
 | 
			
		||||
release:
 | 
			
		||||
  name: gitea-unittests
 | 
			
		||||
  namespace: testing
 | 
			
		||||
templates:
 | 
			
		||||
  - templates/config.yaml
 | 
			
		||||
tests:
 | 
			
		||||
 | 
			
		||||
  - it: "actions can be enabled via inline config"
 | 
			
		||||
    template: templates/config.yaml
 | 
			
		||||
    set:
 | 
			
		||||
      gitea.config.actions.ENABLED: true
 | 
			
		||||
    asserts:
 | 
			
		||||
      - documentIndex: 0
 | 
			
		||||
        equal:
 | 
			
		||||
          path: stringData.actions
 | 
			
		||||
          value: |-
 | 
			
		||||
            ENABLED=true
 | 
			
		||||
 | 
			
		||||
  - it: "actions can be enabled via dedicated values object"
 | 
			
		||||
    template: templates/config.yaml
 | 
			
		||||
    set:
 | 
			
		||||
      actions:
 | 
			
		||||
        enabled: true
 | 
			
		||||
    asserts:
 | 
			
		||||
      - documentIndex: 0
 | 
			
		||||
        equal:
 | 
			
		||||
          path: stringData.actions
 | 
			
		||||
          value: |-
 | 
			
		||||
            ENABLED=true
 | 
			
		||||
 | 
			
		||||
  - it: "defines LOCAL_ROOT_URL when actions are enabled"
 | 
			
		||||
    template: templates/config.yaml
 | 
			
		||||
    set:
 | 
			
		||||
      actions:
 | 
			
		||||
        enabled: true
 | 
			
		||||
    asserts:
 | 
			
		||||
      - documentIndex: 0
 | 
			
		||||
        matchRegex:
 | 
			
		||||
          path: stringData.server
 | 
			
		||||
          pattern: \nLOCAL_ROOT_URL=http://gitea-unittests-http:3000
 | 
			
		||||
 | 
			
		||||
  - it: "respects custom LOCAL_ROOT_URL, even when actions are enabled"
 | 
			
		||||
    template: templates/config.yaml
 | 
			
		||||
    set:
 | 
			
		||||
      actions:
 | 
			
		||||
        enabled: true
 | 
			
		||||
      gitea.config.server.LOCAL_ROOT_URL: "http://git.example.com"
 | 
			
		||||
    asserts:
 | 
			
		||||
      - documentIndex: 0
 | 
			
		||||
        matchRegex:
 | 
			
		||||
          path: stringData.server
 | 
			
		||||
          pattern: \nLOCAL_ROOT_URL=http://git.example.com
 | 
			
		||||
							
								
								
									
										65
									
								
								unittests/job.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								unittests/job.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,65 @@
 | 
			
		||||
suite: actions template | job
 | 
			
		||||
release:
 | 
			
		||||
  name: gitea-unittests
 | 
			
		||||
  namespace: testing
 | 
			
		||||
chart:
 | 
			
		||||
  # Override appVersion to have a pinned version for comparison
 | 
			
		||||
  appVersion: 1.19.3
 | 
			
		||||
templates:
 | 
			
		||||
  - templates/gitea/act_runner/job.yaml
 | 
			
		||||
tests:
 | 
			
		||||
  - it: renders a Job
 | 
			
		||||
    template: templates/gitea/act_runner/job.yaml
 | 
			
		||||
    set:
 | 
			
		||||
      actions:
 | 
			
		||||
        enabled: true
 | 
			
		||||
        provisioning:
 | 
			
		||||
          enabled: true
 | 
			
		||||
      persistence:
 | 
			
		||||
        enabled: true
 | 
			
		||||
        mount: true
 | 
			
		||||
    asserts:
 | 
			
		||||
      - hasDocuments:
 | 
			
		||||
          count: 1
 | 
			
		||||
      - containsDocument:
 | 
			
		||||
          kind: Job
 | 
			
		||||
          apiVersion: batch/v1
 | 
			
		||||
          name: gitea-unittests-actions-token-job
 | 
			
		||||
      - equal:
 | 
			
		||||
          path: spec.template.spec.containers[0].image
 | 
			
		||||
          value: "docker.gitea.com/gitea:1.19.3-rootless"
 | 
			
		||||
  - it: tag override
 | 
			
		||||
    template: templates/gitea/act_runner/job.yaml
 | 
			
		||||
    set:
 | 
			
		||||
      image.tag: "1.19.4"
 | 
			
		||||
      actions:
 | 
			
		||||
        enabled: true
 | 
			
		||||
        provisioning:
 | 
			
		||||
          enabled: true
 | 
			
		||||
          publish:
 | 
			
		||||
            tag: "1.29.0"
 | 
			
		||||
      persistence:
 | 
			
		||||
        enabled: true
 | 
			
		||||
        mount: true
 | 
			
		||||
    asserts:
 | 
			
		||||
      - equal:
 | 
			
		||||
          path: spec.template.spec.containers[0].image
 | 
			
		||||
          value: "docker.gitea.com/gitea:1.19.4-rootless"
 | 
			
		||||
      - equal:
 | 
			
		||||
          path: spec.template.spec.containers[1].image
 | 
			
		||||
          value: "bitnami/kubectl:1.29.0"
 | 
			
		||||
  - it: doesn't renders a Job by default
 | 
			
		||||
    template: templates/gitea/act_runner/job.yaml
 | 
			
		||||
    asserts:
 | 
			
		||||
      - hasDocuments:
 | 
			
		||||
          count: 0
 | 
			
		||||
  - it: doesn't renders a Job when provisioning is enabled BUT actions are not enabled
 | 
			
		||||
    template: templates/gitea/act_runner/job.yaml
 | 
			
		||||
    set:
 | 
			
		||||
      actions:
 | 
			
		||||
        enabled: false
 | 
			
		||||
        provisioning:
 | 
			
		||||
          enabled: true
 | 
			
		||||
    asserts:
 | 
			
		||||
      - hasDocuments:
 | 
			
		||||
          count: 0
 | 
			
		||||
							
								
								
									
										42
									
								
								unittests/role-job.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								unittests/role-job.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,42 @@
 | 
			
		||||
suite: actions template | role-job
 | 
			
		||||
release:
 | 
			
		||||
  name: gitea-unittests
 | 
			
		||||
  namespace: testing
 | 
			
		||||
templates:
 | 
			
		||||
  - templates/gitea/act_runner/role-job.yaml
 | 
			
		||||
tests:
 | 
			
		||||
  - it: doesn't renders a Role by default
 | 
			
		||||
    template: templates/gitea/act_runner/role-job.yaml
 | 
			
		||||
    asserts:
 | 
			
		||||
      - hasDocuments:
 | 
			
		||||
          count: 0
 | 
			
		||||
  - it: renders a Role
 | 
			
		||||
    template: templates/gitea/act_runner/role-job.yaml
 | 
			
		||||
    set:
 | 
			
		||||
      actions:
 | 
			
		||||
        enabled: true
 | 
			
		||||
        provisioning:
 | 
			
		||||
          enabled: true
 | 
			
		||||
      persistence:
 | 
			
		||||
        enabled: true
 | 
			
		||||
        mount: true
 | 
			
		||||
    asserts:
 | 
			
		||||
      - hasDocuments:
 | 
			
		||||
          count: 1
 | 
			
		||||
      - containsDocument:
 | 
			
		||||
          kind: Role
 | 
			
		||||
          apiVersion: rbac.authorization.k8s.io/v1
 | 
			
		||||
          name: gitea-unittests-actions-token-job
 | 
			
		||||
  - it: doesn't renders a Role when criteria met BUT actions are not enabled
 | 
			
		||||
    template: templates/gitea/act_runner/role-job.yaml
 | 
			
		||||
    set:
 | 
			
		||||
      actions:
 | 
			
		||||
        enabled: false
 | 
			
		||||
        provisioning:
 | 
			
		||||
          enabled: true
 | 
			
		||||
      persistence:
 | 
			
		||||
        enabled: true
 | 
			
		||||
        mount: true
 | 
			
		||||
    asserts:
 | 
			
		||||
      - hasDocuments:
 | 
			
		||||
          count: 0
 | 
			
		||||
							
								
								
									
										42
									
								
								unittests/rolebinding-job.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								unittests/rolebinding-job.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,42 @@
 | 
			
		||||
suite: actions template | rolebinding-job
 | 
			
		||||
release:
 | 
			
		||||
  name: gitea-unittests
 | 
			
		||||
  namespace: testing
 | 
			
		||||
templates:
 | 
			
		||||
  - templates/gitea/act_runner/rolebinding-job.yaml
 | 
			
		||||
tests:
 | 
			
		||||
  - it: doesn't renders a RoleBinding by default
 | 
			
		||||
    template: templates/gitea/act_runner/rolebinding-job.yaml
 | 
			
		||||
    asserts:
 | 
			
		||||
      - hasDocuments:
 | 
			
		||||
          count: 0
 | 
			
		||||
  - it: renders a RoleBinding
 | 
			
		||||
    template: templates/gitea/act_runner/rolebinding-job.yaml
 | 
			
		||||
    set:
 | 
			
		||||
      actions:
 | 
			
		||||
        enabled: true
 | 
			
		||||
        provisioning:
 | 
			
		||||
          enabled: true
 | 
			
		||||
      persistence:
 | 
			
		||||
        enabled: true
 | 
			
		||||
        mount: true
 | 
			
		||||
    asserts:
 | 
			
		||||
      - hasDocuments:
 | 
			
		||||
          count: 1
 | 
			
		||||
      - containsDocument:
 | 
			
		||||
          kind: RoleBinding
 | 
			
		||||
          apiVersion: rbac.authorization.k8s.io/v1
 | 
			
		||||
          name: gitea-unittests-actions-token-job
 | 
			
		||||
  - it: doesn't renders a RoleBinding when criteria met BUT actions are not enabled
 | 
			
		||||
    template: templates/gitea/act_runner/rolebinding-job.yaml
 | 
			
		||||
    set:
 | 
			
		||||
      actions:
 | 
			
		||||
        enabled: false
 | 
			
		||||
        provisioning:
 | 
			
		||||
          enabled: true
 | 
			
		||||
      persistence:
 | 
			
		||||
        enabled: true
 | 
			
		||||
        mount: true
 | 
			
		||||
    asserts:
 | 
			
		||||
      - hasDocuments:
 | 
			
		||||
          count: 0
 | 
			
		||||
							
								
								
									
										42
									
								
								unittests/secret-token.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								unittests/secret-token.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,42 @@
 | 
			
		||||
suite: actions template | secret-token
 | 
			
		||||
release:
 | 
			
		||||
  name: gitea-unittests
 | 
			
		||||
  namespace: testing
 | 
			
		||||
templates:
 | 
			
		||||
  - templates/gitea/act_runner/secret-token.yaml
 | 
			
		||||
tests:
 | 
			
		||||
  - it: doesn't renders a Secret by default
 | 
			
		||||
    template: templates/gitea/act_runner/secret-token.yaml
 | 
			
		||||
    asserts:
 | 
			
		||||
      - hasDocuments:
 | 
			
		||||
          count: 0
 | 
			
		||||
  - it: renders a Secret
 | 
			
		||||
    template: templates/gitea/act_runner/secret-token.yaml
 | 
			
		||||
    set:
 | 
			
		||||
      actions:
 | 
			
		||||
        enabled: true
 | 
			
		||||
        provisioning:
 | 
			
		||||
          enabled: true
 | 
			
		||||
      persistence:
 | 
			
		||||
        enabled: true
 | 
			
		||||
        mount: true
 | 
			
		||||
    asserts:
 | 
			
		||||
      - hasDocuments:
 | 
			
		||||
          count: 1
 | 
			
		||||
      - containsDocument:
 | 
			
		||||
          kind: Secret
 | 
			
		||||
          apiVersion: v1
 | 
			
		||||
          name: gitea-unittests-actions-token
 | 
			
		||||
  - it: doesn't renders a Secret when criteria met BUT actions are not enabled
 | 
			
		||||
    template: templates/gitea/act_runner/secret-token.yaml
 | 
			
		||||
    set:
 | 
			
		||||
      actions:
 | 
			
		||||
        enabled: false
 | 
			
		||||
        provisioning:
 | 
			
		||||
          enabled: true
 | 
			
		||||
      persistence:
 | 
			
		||||
        enabled: true
 | 
			
		||||
        mount: true
 | 
			
		||||
    asserts:
 | 
			
		||||
      - hasDocuments:
 | 
			
		||||
          count: 0
 | 
			
		||||
							
								
								
									
										42
									
								
								unittests/serviceaccount-job.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								unittests/serviceaccount-job.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,42 @@
 | 
			
		||||
suite: actions template | serviceaccount-job
 | 
			
		||||
release:
 | 
			
		||||
  name: gitea-unittests
 | 
			
		||||
  namespace: testing
 | 
			
		||||
templates:
 | 
			
		||||
  - templates/gitea/act_runner/serviceaccount-job.yaml
 | 
			
		||||
tests:
 | 
			
		||||
  - it: doesn't renders a ServiceAccount by default
 | 
			
		||||
    template: templates/gitea/act_runner/serviceaccount-job.yaml
 | 
			
		||||
    asserts:
 | 
			
		||||
      - hasDocuments:
 | 
			
		||||
          count: 0
 | 
			
		||||
  - it: renders a ServiceAccount
 | 
			
		||||
    template: templates/gitea/act_runner/serviceaccount-job.yaml
 | 
			
		||||
    set:
 | 
			
		||||
      actions:
 | 
			
		||||
        enabled: true
 | 
			
		||||
        provisioning:
 | 
			
		||||
          enabled: true
 | 
			
		||||
      persistence:
 | 
			
		||||
        enabled: true
 | 
			
		||||
        mount: true
 | 
			
		||||
    asserts:
 | 
			
		||||
      - hasDocuments:
 | 
			
		||||
          count: 1
 | 
			
		||||
      - containsDocument:
 | 
			
		||||
          kind: ServiceAccount
 | 
			
		||||
          apiVersion: v1
 | 
			
		||||
          name: gitea-unittests-actions-token-job
 | 
			
		||||
  - it: doesn't renders a ServiceAccount when criteria met BUT actions are not enabled
 | 
			
		||||
    template: templates/gitea/act_runner/serviceaccount-job.yaml
 | 
			
		||||
    set:
 | 
			
		||||
      actions:
 | 
			
		||||
        enabled: false
 | 
			
		||||
        provisioning:
 | 
			
		||||
          enabled: true
 | 
			
		||||
      persistence:
 | 
			
		||||
        enabled: true
 | 
			
		||||
        mount: true
 | 
			
		||||
    asserts:
 | 
			
		||||
      - hasDocuments:
 | 
			
		||||
          count: 0
 | 
			
		||||
							
								
								
									
										182
									
								
								unittests/statefulset.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										182
									
								
								unittests/statefulset.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,182 @@
 | 
			
		||||
suite: actions template | statefulset
 | 
			
		||||
release:
 | 
			
		||||
  name: gitea-unittests
 | 
			
		||||
  namespace: testing
 | 
			
		||||
templates:
 | 
			
		||||
  - templates/gitea/act_runner/statefulset.yaml
 | 
			
		||||
  - templates/gitea/act_runner/config-act-runner.yaml
 | 
			
		||||
tests:
 | 
			
		||||
  - it: doesn't renders a StatefulSet by default
 | 
			
		||||
    template: templates/gitea/act_runner/statefulset.yaml
 | 
			
		||||
    asserts:
 | 
			
		||||
      - hasDocuments:
 | 
			
		||||
          count: 0
 | 
			
		||||
  - it: renders a StatefulSet (with given existingSecret/existingSecretKey)
 | 
			
		||||
    template: templates/gitea/act_runner/statefulset.yaml
 | 
			
		||||
    set:
 | 
			
		||||
      actions:
 | 
			
		||||
        enabled: true
 | 
			
		||||
        existingSecret: "my-secret"
 | 
			
		||||
        existingSecretKey: "my-secret-key"
 | 
			
		||||
    asserts:
 | 
			
		||||
      - hasDocuments:
 | 
			
		||||
          count: 1
 | 
			
		||||
      - containsDocument:
 | 
			
		||||
          kind: StatefulSet
 | 
			
		||||
          apiVersion: apps/v1
 | 
			
		||||
          name: gitea-unittests-act-runner
 | 
			
		||||
      - equal:
 | 
			
		||||
          path: spec.template.spec.containers[0].env[3]
 | 
			
		||||
          value:
 | 
			
		||||
            name: GITEA_RUNNER_REGISTRATION_TOKEN
 | 
			
		||||
            valueFrom:
 | 
			
		||||
              secretKeyRef:
 | 
			
		||||
                name: "my-secret"
 | 
			
		||||
                key: "my-secret-key"
 | 
			
		||||
  - it: renders a StatefulSet (with secret reference defaults for enabled provisioning)
 | 
			
		||||
    template: templates/gitea/act_runner/statefulset.yaml
 | 
			
		||||
    set:
 | 
			
		||||
      actions:
 | 
			
		||||
        enabled: true
 | 
			
		||||
        provisioning:
 | 
			
		||||
          enabled: true
 | 
			
		||||
    asserts:
 | 
			
		||||
      - hasDocuments:
 | 
			
		||||
          count: 1
 | 
			
		||||
      - containsDocument:
 | 
			
		||||
          kind: StatefulSet
 | 
			
		||||
          apiVersion: apps/v1
 | 
			
		||||
          name: gitea-unittests-act-runner
 | 
			
		||||
      - equal:
 | 
			
		||||
          path: spec.template.spec.containers[0].env[3]
 | 
			
		||||
          value:
 | 
			
		||||
            name: GITEA_RUNNER_REGISTRATION_TOKEN
 | 
			
		||||
            valueFrom:
 | 
			
		||||
              secretKeyRef:
 | 
			
		||||
                name: "gitea-unittests-actions-token"
 | 
			
		||||
                key: "token"
 | 
			
		||||
  - it: renders a StatefulSet (that tracks changes of the runner configuration as annotation)
 | 
			
		||||
    template: templates/gitea/act_runner/statefulset.yaml
 | 
			
		||||
    set:
 | 
			
		||||
      image.tag: "1.22.3" # lock image tag to prevent test failures on future Gitea upgrades
 | 
			
		||||
      actions:
 | 
			
		||||
        enabled: true
 | 
			
		||||
        existingSecret: "my-secret"
 | 
			
		||||
        existingSecretKey: "my-secret-key"
 | 
			
		||||
    asserts:
 | 
			
		||||
      - hasDocuments:
 | 
			
		||||
          count: 1
 | 
			
		||||
      - containsDocument:
 | 
			
		||||
          kind: StatefulSet
 | 
			
		||||
          apiVersion: apps/v1
 | 
			
		||||
          name: gitea-unittests-act-runner
 | 
			
		||||
      - equal:
 | 
			
		||||
          path: spec.template.metadata.annotations["checksum/config"]
 | 
			
		||||
          value: "2a2200e80fc29111d18b675789c265cd3d5f917754850f946f1ce3c55dcd65f8"
 | 
			
		||||
  - it: renders a StatefulSet (with correct GITEA_INSTANCE_URL env with default act-runner specific LOCAL_ROOT_URL)
 | 
			
		||||
    template: templates/gitea/act_runner/statefulset.yaml
 | 
			
		||||
    set:
 | 
			
		||||
      actions:
 | 
			
		||||
        enabled: true
 | 
			
		||||
        existingSecret: "my-secret"
 | 
			
		||||
        existingSecretKey: "my-secret-key"
 | 
			
		||||
    asserts:
 | 
			
		||||
      - hasDocuments:
 | 
			
		||||
          count: 1
 | 
			
		||||
      - containsDocument:
 | 
			
		||||
          kind: StatefulSet
 | 
			
		||||
          apiVersion: apps/v1
 | 
			
		||||
          name: gitea-unittests-act-runner
 | 
			
		||||
      - equal:
 | 
			
		||||
          path: spec.template.spec.containers[0].env[4]
 | 
			
		||||
          value:
 | 
			
		||||
            name: GITEA_INSTANCE_URL
 | 
			
		||||
            value: "http://gitea-unittests-http:3000"
 | 
			
		||||
  - it: renders a StatefulSet (with correct GITEA_INSTANCE_URL env from customized LOCAL_ROOT_URL)
 | 
			
		||||
    template: templates/gitea/act_runner/statefulset.yaml
 | 
			
		||||
    set:
 | 
			
		||||
      gitea.config.server.LOCAL_ROOT_URL: "http://git.example.com"
 | 
			
		||||
      actions:
 | 
			
		||||
        enabled: true
 | 
			
		||||
        existingSecret: "my-secret"
 | 
			
		||||
        existingSecretKey: "my-secret-key"
 | 
			
		||||
    asserts:
 | 
			
		||||
      - hasDocuments:
 | 
			
		||||
          count: 1
 | 
			
		||||
      - containsDocument:
 | 
			
		||||
          kind: StatefulSet
 | 
			
		||||
          apiVersion: apps/v1
 | 
			
		||||
          name: gitea-unittests-act-runner
 | 
			
		||||
      - equal:
 | 
			
		||||
          path: spec.template.spec.containers[0].env[4]
 | 
			
		||||
          value:
 | 
			
		||||
            name: GITEA_INSTANCE_URL
 | 
			
		||||
            value: "http://git.example.com"
 | 
			
		||||
  - it: allows adding custom environment variables to the docker-in-docker container
 | 
			
		||||
    template: templates/gitea/act_runner/statefulset.yaml
 | 
			
		||||
    set:
 | 
			
		||||
      actions:
 | 
			
		||||
        enabled: true
 | 
			
		||||
        statefulset:
 | 
			
		||||
          dind:
 | 
			
		||||
            extraEnvs:
 | 
			
		||||
              - name: "CUSTOM_ENV_NAME"
 | 
			
		||||
                value: "custom env value"
 | 
			
		||||
    asserts:
 | 
			
		||||
      - equal:
 | 
			
		||||
          path: spec.template.spec.containers[1].env[3]
 | 
			
		||||
          value:
 | 
			
		||||
            name: "CUSTOM_ENV_NAME"
 | 
			
		||||
            value: "custom env value"
 | 
			
		||||
  - it: should mount an extra volume in the act runner container
 | 
			
		||||
    template: templates/gitea/act_runner/statefulset.yaml
 | 
			
		||||
    set:
 | 
			
		||||
      actions:
 | 
			
		||||
        enabled: true
 | 
			
		||||
        statefulset:
 | 
			
		||||
          extraVolumes:
 | 
			
		||||
            - name: my-act-runner-volume
 | 
			
		||||
              emptyDir: {}
 | 
			
		||||
          actRunner:
 | 
			
		||||
            extraVolumeMounts:
 | 
			
		||||
              - mountPath: /mnt
 | 
			
		||||
                name: my-act-runner-volume
 | 
			
		||||
    asserts:
 | 
			
		||||
      - hasDocuments:
 | 
			
		||||
          count: 1
 | 
			
		||||
      - containsDocument:
 | 
			
		||||
          kind: StatefulSet
 | 
			
		||||
          apiVersion: apps/v1
 | 
			
		||||
          name: gitea-unittests-act-runner
 | 
			
		||||
      - contains:
 | 
			
		||||
          any: true
 | 
			
		||||
          path: spec.template.spec.containers[0].volumeMounts
 | 
			
		||||
          content:
 | 
			
		||||
            mountPath: /mnt
 | 
			
		||||
            name: my-act-runner-volume
 | 
			
		||||
  - it: should mount an extra volume in the docker-in-docker container
 | 
			
		||||
    template: templates/gitea/act_runner/statefulset.yaml
 | 
			
		||||
    set:
 | 
			
		||||
      actions:
 | 
			
		||||
        enabled: true
 | 
			
		||||
        statefulset:
 | 
			
		||||
          extraVolumes:
 | 
			
		||||
            - name: my-dind-volume
 | 
			
		||||
              emptyDir: {}
 | 
			
		||||
          dind:
 | 
			
		||||
            extraVolumeMounts:
 | 
			
		||||
              - mountPath: /mnt
 | 
			
		||||
                name: my-dind-volume
 | 
			
		||||
    asserts:
 | 
			
		||||
      - hasDocuments:
 | 
			
		||||
          count: 1
 | 
			
		||||
      - containsDocument:
 | 
			
		||||
          kind: StatefulSet
 | 
			
		||||
          apiVersion: apps/v1
 | 
			
		||||
          name: gitea-unittests-act-runner
 | 
			
		||||
      - contains:
 | 
			
		||||
          any: true
 | 
			
		||||
          path: spec.template.spec.containers[1].volumeMounts
 | 
			
		||||
          content:
 | 
			
		||||
            mountPath: /mnt
 | 
			
		||||
            name: my-dind-volume
 | 
			
		||||
		Reference in New Issue
	
	Block a user