Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Published by Scroll Versions from space FUNCTDEV and version SVC2023.1

...

Code Block
languageyml
titleparasoft-permissions.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: parasoft-account
  namespace: parasoft-sv-namespace
automountServiceAccountToken: true
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: parasoft-read
  namespace: parasoft-sv-namespace
rules:
- apiGroups:
  - "*"
  resources:
  - "*"
  verbs:
  - get
  - read
  - list
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: parasoft-read-bind
  namespace: parasoft-sv-namespace
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: parasoft-read
subjects:
- kind: ServiceAccount
  name: parasoft-account
  namespace: parasoft-sv-namespace

...

Warning: When scaling beyond one replica, the events and statistics services should be disabled.

Note: kind: Deployment is not supported. Use either kind: Pod or kind: StatefulSet, which are supported.

Code Block
languageyml
titlesoavirt.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: soavirt
  namespace: parasoft-sv-namespace
  labels:
    tag: soavirt
spec:
  replicas: 1
  selector:
    matchLabels:
      tag: soavirt
  serviceName: soavirt
  template:
    metadata:
      labels:
        tag: soavirt
    spec:
      securityContext:
        runAsNonRoot: true
      serviceAccountName: parasoft-account
      automountServiceAccountToken: true
      volumes:
      - name: soavirt-pv
        persistentVolumeClaim:
          claimName: soavirt-pvc
      - name: soavirt-config
        configMap:
          name: soavirt-config
      containers:
      - name: soavirt
        image: parasoft/soavirt-server
        imagePullPolicy: IfNotPresent
        volumeMounts:
        - name: soavirt-pv
          mountPath: /usr/local/parasoft/soavirt/webapps/ROOT/workspace
        - name: soavirt-config
          mountPath: /usr/local/parasoft/soavirt/webapps/config.properties
          subPath: config.properties
        ports:
        - name: http
          containerPort: 9080
        - name: events
          containerPort: 9617
        - name: statistics
          containerPort: 9618
        startupProbe:
          httpGet:
            path: /soavirt/api/v6/healthcheck
            port: 9080
          initialDelaySeconds: 30
          periodSeconds: 30
          timeoutSeconds: 30
          failureThreshold: 3
        livenessProbe:
          httpGet:
            path: /soavirt/api/v6/healthcheck
            port: 9080
          initialDelaySeconds: 30
          periodSeconds: 30
          timeoutSeconds: 30 
        env:
        - name: CATALINA_OPTS
          value: "-Dparasoft.auto.deploy.new=false
                   -Dparasoft.event.monitoring.broker.port=9617
                   -Dparasoft.server.statistics.broker.port=9618
                   -Dparasoft.cloudvm=true
                   -Dparasoft.cloudvm.config=Kubernetes"
        - name: PARASOFT_POD_NAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        - name: PARASOFT_POD_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace

...

Warning

Once the SOAVirt server has been licensed, deleting the namespace the namespace or changing the release-name will invalidate machine-locked licenses, even if you recreate the same namespace.

...

  1. Download and extract parasoft_soavirt_server_2023.1.1_helm_chart.zip. This zip file contains all the yaml files you will need for this process.
  2. Update the values.yaml found in the soavirt-server-helm directory extracted above. At a minimum, the persistence value must be changed to match the name of the Persistent Volume claim configured in Prerequisites above.

    Code Block
    persistence:
      name: soavirt-pvc

    Other values, such as the replica count and namespace, can be changed if necessary.

  3. Update the config.yaml found in the soavirt-server-helm/templates directory extracted above. At the minimum, the parasoft.eula.accepted value must be updated to true to accept the EULA:

    Code Block
        parasoft.eula.accepted: false

    Other values can be changed if necessary. For example, if you are using a network license, update these fields:

    Code Block
        # === PRODUCT LICENSING ===
        # Enables virtualize functionality
        #virtualize.license.enabled: true
    
        # Enables soatest functionality
        #soatest.license.enabled: true
    
    
        # === NETWORK LICENSE ===
        # Enables network licensing for virtualize
        #virtualize.license.use_network: true
    
        # Specifies the type of network license for virtualize ['performance_server_edition', 'runtime_server_edition', 'custom_edition']
        #virtualize.license.network.edition: custom_edition
    
        # Specifies features for virtualize 'custom_edition' license
        #virtualize.license.custom_edition_features: Service Enabled, Performance, Extension Pack, Validate, Message Packs, Extension Framework, Developer Sandbox 1000 Hits/Day, 10000 Hits/Day, 25000 Hits/Day, 50000 Hits/Day, 100000 Hits/Day, 500000 Hits/Day, 1 Million Hits/Day, Unlimited Hits/Day, 30 HPS, 100 HPS
    
        # Enables network licensing for soatest
        #soatest.license.use_network: true
    
        # Specifies the type of network license for soatest ['server_edition', 'custom_edition']
        #soatest.license.network.edition: custom_edition
    
        # Specifies features for soatest 'custom_edition' license
        #soatest.license.custom_edition_features: RuleWizard, Command Line, SOA, Web, Server API Enabled, Message Packs, Advanced Test Generation Desktop, Advanced Test Generation 5 Users, Advanced Test Generation 25 Users, Advanced Test Generation 100 Users, Requirements Traceability, API Security Testing, Extension Framework
    
    
        # === LICENSE SERVER ===
        # Enables using a specific license server
        # If true, the license network properties below will be used to retrieve a license
        # If false, the DTP server properties will be used to retrieve a license
        #license.network.use.specified.server: false
    
        # Specifies license server URL, e.g., https://host[:port][/context-path]
        #license.network.url: https\://[License Server Host]\:8443
    
        # Enables http authentication for the license server
        #license.network.auth.enabled: false
    
        # Specifies username for license server authentication
        #license.network.user: [License Server Username]
    
        # Specifies password for license server authentication
        #license.network.password: [License Server Password]
    
    
  4. Install a helm chart:

    Code Block
    helm install my-release soavirt-server-helm

Using a Local License: To use a node-lock license, you will need to retrieve the machine ID from the deployed server in order to procure your license from Parasoft and update the config.yaml.

  1. Open a shell to the running container:

    Code Block
    kubectl exec --stdin --tty my-release-soavirt-server-0 -n parasoft-sv-namespace -- /bin/bash
  2. Make a curl call to the SOAVirt REST API to retrieve the machine ID:

    Code Block
    curl http://localhost:9080/soavirt/api/v6/status?fields=machineId
  3. Note the machine ID in the response and provide it to your Parasoft representative, who will send you a license password.
  4. Once you've received your license password, update the config.yaml found in the soavirt-server-helm/templates directory extracted earlier to accept a machine-locked license:

    Code Block
        # === NODE-LOCK LICENSE ===
        # Specifies password for virtualize local license
        #virtualize.license.local.password: [Virtualize License Password]
    
        # Specifies password for soatest local license
        #soatest.license.local.password: [Soatest License Password]
    
        # === NETWORK LICENSE ===
        # Enables network licensing for virtualize
        #virtualize.license.use_network: true
    
        # Enables network licensing for soatest
        #soatest.license.use_network: true
  5. Reinstall the Helm chart for the changes to take effect.

    Code Block
    helm uninstall my-release
    helm install my-release soavirt-server-helm