diff --git a/roles/tackle/defaults/main.yml b/roles/tackle/defaults/main.yml index 476b9e8..26263a5 100644 --- a/roles/tackle/defaults/main.yml +++ b/roles/tackle/defaults/main.yml @@ -165,14 +165,23 @@ analyzer_container_limits_memory: "1Gi" analyzer_container_requests_cpu: "1" analyzer_container_requests_memory: "512Mi" -provider_generic_component_name: "extension" -provider_generic_container_limits_cpu: "1" -provider_generic_container_limits_memory: "1Gi" -provider_generic_container_requests_cpu: "1" -provider_generic_container_requests_memory: "1Gi" -provider_generic_image_fqin: "{{ lookup('env', 'RELATED_IMAGE_PROVIDER_GENERIC') }}" -provider_generic_name: "generic" -provider_generic_service_name: "{{ app_name }}-{{ provider_generic_name }}-{{ analyzer_component_name }}" +provider_python_component_name: "extension" +provider_python_container_limits_cpu: "1" +provider_python_container_limits_memory: "1Gi" +provider_python_container_requests_cpu: "1" +provider_python_container_requests_memory: "1Gi" +provider_python_image_fqin: "{{ lookup('env', 'RELATED_IMAGE_PROVIDER_GENERIC') }}" +provider_python_name: "python" +provider_python_service_name: "{{ app_name }}-{{ provider_python_name }}-{{ provider_python_component_name }}" + +provider_nodejs_component_name: "extension" +provider_nodejs_container_limits_cpu: "1" +provider_nodejs_container_limits_memory: "1Gi" +provider_nodejs_container_requests_cpu: "1" +provider_nodejs_container_requests_memory: "1Gi" +provider_nodejs_image_fqin: "{{ lookup('env', 'RELATED_IMAGE_PROVIDER_GENERIC') }}" +provider_nodejs_name: "nodejs" +provider_nodejs_service_name: "{{ app_name }}-{{ provider_nodejs_name }}-{{ provider_nodejs_component_name }}" provider_java_component_name: "extension" provider_java_container_limits_cpu: "1" @@ -181,7 +190,7 @@ provider_java_container_requests_cpu: "1" provider_java_container_requests_memory: "2Gi" provider_java_image_fqin: "{{ lookup('env', 'RELATED_IMAGE_PROVIDER_JAVA') }}" provider_java_name: "java" -provider_java_service_name: "{{ app_name }}-{{ provider_java_name }}-{{ analyzer_component_name }}" +provider_java_service_name: "{{ app_name }}-{{ provider_java_name }}-{{ provider_java_component_name }}" language_discovery_fqin: "{{ lookup('env', 'RELATED_IMAGE_ADDON_DISCOVERY') }}" language_discovery_name: "language-discovery" @@ -200,8 +209,6 @@ tech_discovery_container_limits_cpu: "{{ analyzer_container_limits_cpu }}" tech_discovery_container_limits_memory: "{{ analyzer_container_limits_memory }}" tech_discovery_container_requests_cpu: "{{ analyzer_container_requests_cpu }}" tech_discovery_container_requests_memory: "{{ analyzer_container_requests_memory }}" -tech_discovery_provider_java_name: "discovery-java" -tech_discovery_provider_generic_name: "discovery-generic" cache_name: "cache" cache_data_volume_size: "100Gi" diff --git a/roles/tackle/tasks/main.yml b/roles/tackle/tasks/main.yml index 39c3931..167fbf6 100644 --- a/roles/tackle/tasks/main.yml +++ b/roles/tackle/tasks/main.yml @@ -512,11 +512,44 @@ name: "{{ admin_name }}" namespace: "{{ app_namespace }}" -- name: "Create Windup Addon CR" +- name: "Create Analyzer Addon CR" k8s: state: present definition: "{{ lookup('template', 'customresource-addon-analyzer.yml.j2') }}" +- name: "Create Extensions CR" + k8s: + state: present + definition: "{{ lookup('template', 'customresource-extension.yml.j2') }}" + +# Generic extension refactored into separate +# extensions for each provider. +- name: "Delete generic extension" + k8s: + state: absent + kind: Extension + api_version: tackle.konveyor.io/v1alpha1 + name: "generic" + namespace: "{{ app_namespace }}" + +# Extensions shared between analysis and tech-discovery addons. +- name: "Delete discovery-java extension" + k8s: + state: absent + kind: Extension + api_version: tackle.konveyor.io/v1alpha1 + name: "discovery-java" + namespace: "{{ app_namespace }}" + +# Extensions shared between analysis and tech-discovery addons. +- name: "Delete discovery-java extension" + k8s: + state: absent + kind: Extension + api_version: tackle.konveyor.io/v1alpha1 + name: "discovery-generic" + namespace: "{{ app_namespace }}" + - name: "Create Language Discovery Addon CR" k8s: state: present diff --git a/roles/tackle/templates/customresource-addon-analyzer.yml.j2 b/roles/tackle/templates/customresource-addon-analyzer.yml.j2 index ba37078..1849073 100644 --- a/roles/tackle/templates/customresource-addon-analyzer.yml.j2 +++ b/roles/tackle/templates/customresource-addon-analyzer.yml.j2 @@ -22,95 +22,6 @@ spec: cpu: {{ analyzer_container_requests_cpu }} memory: {{ analyzer_container_requests_memory }} --- -kind: Extension -apiVersion: tackle.konveyor.io/v1alpha1 -metadata: - name: {{ provider_java_name }} - namespace: {{ app_namespace }} - labels: - app.kubernetes.io/name: {{ provider_java_service_name }} - app.kubernetes.io/component: {{ provider_java_component_name }} - app.kubernetes.io/part-of: {{ app_name }} -spec: - addon: {{ analyzer_name }} - selector: tag:Language=Java || !tag:Language - container: - name: {{ provider_java_name }} - image: {{ provider_java_image_fqin }} - imagePullPolicy: {{ image_pull_policy }} - args: - - --port - - $(PORT) - env: - - name: PORT - value: ${seq:8000} - - name: MAVEN_OPTS - value: -Dmaven.repo.local={{ cache_mount_path }}/m2 - resources: - limits: - cpu: {{ provider_java_container_limits_cpu }} - memory: {{ provider_java_container_limits_memory }} - requests: - cpu: {{ provider_java_container_requests_cpu }} - memory: {{ provider_java_container_requests_memory }} - metadata: - resources: - - selector: identity:kind=maven - fields: - - name: settings - path: /shared/creds/maven/settings.xml - key: maven.settings.path - - selector: setting:key=mvn.insecure.enabled - fields: - - name: value - key: maven.insecure - provider: - name: {{ provider_java_name }} - address: localhost:$(PORT) - initConfig: - - providerSpecificConfig: - bundles: /jdtls/java-analyzer-bundle/java-analyzer-bundle.core/target/java-analyzer-bundle.core-1.0.0-SNAPSHOT.jar - depOpenSourceLabelsFile: /usr/local/etc/maven.default.index - lspServerPath: /jdtls/bin/jdtls - mavenInsecure: $(maven.insecure) - mavenSettingsFile: $(maven.settings.path) - mavenCacheDir: {{ cache_mount_path }}/m2 ---- -kind: Extension -apiVersion: tackle.konveyor.io/v1alpha1 -metadata: - name: {{ provider_generic_name }} - namespace: {{ app_namespace }} - labels: - app.kubernetes.io/name: {{ provider_generic_service_name }} - app.kubernetes.io/component: {{ provider_generic_component_name }} - app.kubernetes.io/part-of: {{ app_name }} -spec: - addon: {{ analyzer_name }} - selector: tag:Language=Golang || tag:Language=Python - container: - name: {{ provider_generic_name }} - image: {{ provider_generic_image_fqin }} - imagePullPolicy: {{ image_pull_policy }} - args: - - --port - - $(PORT) - env: - - name: PORT - value: ${seq:8000} - resources: - limits: - cpu: {{ provider_generic_container_limits_cpu }} - memory: {{ provider_generic_container_limits_memory }} - requests: - cpu: {{ provider_generic_container_requests_cpu }} - memory: {{ provider_generic_container_requests_memory }} - metadata: - provider: - name: {{ provider_generic_name }} - address: localhost:$(PORT) - initConfig: ---- kind: Task apiVersion: tackle.konveyor.io/v1alpha1 metadata: diff --git a/roles/tackle/templates/customresource-addon-tech-discovery.yml.j2 b/roles/tackle/templates/customresource-addon-tech-discovery.yml.j2 index 5689ae1..162035a 100644 --- a/roles/tackle/templates/customresource-addon-tech-discovery.yml.j2 +++ b/roles/tackle/templates/customresource-addon-tech-discovery.yml.j2 @@ -22,90 +22,6 @@ spec: cpu: {{ tech_discovery_container_requests_cpu }} memory: {{ tech_discovery_container_requests_memory }} --- -kind: Extension -apiVersion: tackle.konveyor.io/v1alpha1 -metadata: - name: {{ tech_discovery_provider_java_name }} - namespace: {{ app_namespace }} - labels: - app.kubernetes.io/name: {{ provider_java_service_name }} - app.kubernetes.io/component: {{ provider_java_component_name }} - app.kubernetes.io/part-of: {{ app_name }} -spec: - addon: {{ tech_discovery_name }} - selector: tag:Language=Java || !tag:Language - container: - name: {{ provider_java_name }} - image: {{ provider_java_image_fqin }} - imagePullPolicy: {{ image_pull_policy }} - args: - - --port - - $(PORT) - env: - - name: PORT - value: ${seq:8000} - - name: MAVEN_OPTS - value: -Dmaven.repo.local={{ cache_mount_path }}/m2 - resources: - limits: - cpu: {{ provider_java_container_limits_cpu }} - memory: {{ provider_java_container_limits_memory }} - requests: - cpu: {{ provider_java_container_requests_cpu }} - memory: {{ provider_java_container_requests_memory }} - metadata: - resources: - - selector: identity:kind=maven - fields: - - name: settings - path: /shared/creds/maven/settings.xml - key: maven.settings.path - provider: - name: {{ provider_java_name }} - address: localhost:$(PORT) - initConfig: - - providerSpecificConfig: - bundles: /jdtls/java-analyzer-bundle/java-analyzer-bundle.core/target/java-analyzer-bundle.core-1.0.0-SNAPSHOT.jar - depOpenSourceLabelsFile: /usr/local/etc/maven.default.index - lspServerPath: /jdtls/bin/jdtls - mavenSettingsFile: $(maven.settings.path) - mavenCacheDir: {{ cache_mount_path }}/m2 ---- -kind: Extension -apiVersion: tackle.konveyor.io/v1alpha1 -metadata: - name: {{ tech_discovery_provider_generic_name }} - namespace: {{ app_namespace }} - labels: - app.kubernetes.io/name: {{ provider_generic_service_name }} - app.kubernetes.io/component: {{ provider_generic_component_name }} - app.kubernetes.io/part-of: {{ app_name }} -spec: - addon: {{ tech_discovery_name }} - selector: tag:Language=Golang || tag:Language=Python - container: - name: {{ provider_generic_name }} - image: {{ provider_generic_image_fqin }} - imagePullPolicy: {{ image_pull_policy }} - args: - - --port - - $(PORT) - env: - - name: PORT - value: ${seq:8000} - resources: - limits: - cpu: {{ provider_generic_container_limits_cpu }} - memory: {{ provider_generic_container_limits_memory }} - requests: - cpu: {{ provider_generic_container_requests_cpu }} - memory: {{ provider_generic_container_requests_memory }} - metadata: - provider: - name: {{ provider_generic_name }} - address: localhost:$(PORT) - initConfig: ---- kind: Task apiVersion: tackle.konveyor.io/v1alpha1 metadata: diff --git a/roles/tackle/templates/customresource-extension.yml.j2 b/roles/tackle/templates/customresource-extension.yml.j2 new file mode 100644 index 0000000..4812dc1 --- /dev/null +++ b/roles/tackle/templates/customresource-extension.yml.j2 @@ -0,0 +1,141 @@ +--- +kind: Extension +apiVersion: tackle.konveyor.io/v1alpha1 +metadata: + name: {{ provider_java_name }} + namespace: {{ app_namespace }} + labels: + app.kubernetes.io/name: {{ provider_java_service_name }} + app.kubernetes.io/component: {{ provider_java_component_name }} + app.kubernetes.io/part-of: {{ app_name }} +spec: + addon: ^({{ analyzer_name }}|{{ tech_discovery_name }})$ + selector: tag:Language=Java || !tag:Language + container: + name: {{ provider_java_name }} + image: {{ provider_java_image_fqin }} + imagePullPolicy: {{ image_pull_policy }} + args: + - --port + - $(PORT) + env: + - name: PORT + value: ${seq:8000} + - name: MAVEN_OPTS + value: -Dmaven.repo.local={{ cache_mount_path }}/m2 + resources: + limits: + cpu: {{ provider_java_container_limits_cpu }} + memory: {{ provider_java_container_limits_memory }} + requests: + cpu: {{ provider_java_container_requests_cpu }} + memory: {{ provider_java_container_requests_memory }} + metadata: + resources: + - selector: identity:kind=maven + fields: + - name: settings + path: /shared/creds/maven/settings.xml + key: maven.settings.path + - selector: setting:key=mvn.insecure.enabled + fields: + - name: value + key: maven.insecure + provider: + name: {{ provider_java_name }} + address: localhost:$(PORT) + initConfig: + - providerSpecificConfig: + bundles: /jdtls/java-analyzer-bundle/java-analyzer-bundle.core/target/java-analyzer-bundle.core-1.0.0-SNAPSHOT.jar + depOpenSourceLabelsFile: /usr/local/etc/maven.default.index + lspServerPath: /jdtls/bin/jdtls + mavenInsecure: $(maven.insecure) + mavenSettingsFile: $(maven.settings.path) + mavenCacheDir: {{ cache_mount_path }}/m2 +--- +kind: Extension +apiVersion: tackle.konveyor.io/v1alpha1 +metadata: + name: {{ provider_python_name }} + namespace: {{ app_namespace }} + labels: + app.kubernetes.io/name: {{ provider_python_service_name }} + app.kubernetes.io/component: {{ provider_python_component_name }} + app.kubernetes.io/part-of: {{ app_name }} +spec: + addon: ^({{ analyzer_name }}|{{ tech_discovery_name }})$ + selector: tag:Language=Golang || tag:Language=Python + container: + name: {{ provider_python_name }} + image: {{ provider_python_image_fqin }} + imagePullPolicy: {{ image_pull_policy }} + args: + - --port + - $(PORT) + env: + - name: PORT + value: ${seq:8000} + resources: + limits: + cpu: {{ provider_python_container_limits_cpu }} + memory: {{ provider_python_container_limits_memory }} + requests: + cpu: {{ provider_python_container_requests_cpu }} + memory: {{ provider_python_container_requests_memory }} + metadata: + provider: + address: localhost:$(PORT) + initConfig: + - providerSpecificConfig: + lspServerName: generic + lspServerPath: /usr/local/bin/pylsp + workspaceFolders: + - $(builtin.location) + dependencyFolders: + - examples/python/__pycache__ + - examples/python/.venv + name: {{ provider_python_name }} + selector: tag:Language=Python +--- +kind: Extension +apiVersion: tackle.konveyor.io/v1alpha1 +metadata: + name: {{ provider_nodejs_name }} + namespace: {{ app_namespace }} + labels: + app.kubernetes.io/name: {{ provider_nodejs_service_name }} + app.kubernetes.io/component: {{ provider_nodejs_component_name }} + app.kubernetes.io/part-of: {{ app_name }} +spec: + addon: ^({{ analyzer_name }}|{{ tech_discovery_name }})$ + selector: tag:Language=TypeScript + container: + name: {{ provider_nodejs_name }} + image: {{ provider_nodejs_image_fqin }} + imagePullPolicy: {{ image_pull_policy }} + args: + - --port + - $(PORT) + env: + - name: PORT + value: ${seq:8000} + resources: + limits: + cpu: {{ provider_nodejs_container_limits_cpu }} + memory: {{ provider_nodejs_container_limits_memory }} + requests: + cpu: {{ provider_nodejs_container_requests_cpu }} + memory: {{ provider_nodejs_container_requests_memory }} + metadata: + provider: + address: localhost:$(PORT) + initConfig: + - providerSpecificConfig: + lspServerName: generic + lspServerPath: /usr/local/bin/typescript-language-server + lspServerArgs: + - "--stdio" + workspaceFolders: + - $(builtin.location) + name: nodejs + selector: tag:Language=TypeScript