diff --git a/.github/workflows/ansible_lint.yml b/.github/workflows/ansible_lint.yml index 55159e30..7d910151 100644 --- a/.github/workflows/ansible_lint.yml +++ b/.github/workflows/ansible_lint.yml @@ -14,6 +14,6 @@ jobs: uses: ansible/ansible-lint@v25.9.2 with: working_directory: ansible/ - args: "-x 204,role-name --skip-list role-name[path],yaml[line-length]" + args: "-x no-free-form,role-name,fqcn[action-core],role-name[path],yaml[line-length]" env: ANSIBLE_LIBRARY: ${{ github.workspace }}/ansible/library diff --git a/.github/workflows/docker_ci.yml b/.github/workflows/docker_ci.yml index b56fbec3..04574c57 100644 --- a/.github/workflows/docker_ci.yml +++ b/.github/workflows/docker_ci.yml @@ -8,8 +8,8 @@ on: env: # Doesn't matter too much, we just want to verify the build passes CURRENT_LTS: '0.24' - KB_VERSION: '0.24.15' - KAUI_VERSION: '3.0.20' + KB_VERSION: '0.24.16' + KAUI_VERSION: '4.0.6' jobs: docker_ci: diff --git a/ansible/README.md b/ansible/README.md index 81007d9b..dca0883e 100644 --- a/ansible/README.md +++ b/ansible/README.md @@ -153,7 +153,7 @@ To build upon these roles, you can create your own play, e.g.: include_role: name: killbill-cloud/ansible/roles/killbill - name: customize Kill Bill - ansible.builtin.import_tasks: roles/acme/tasks/main.yml + import_tasks: roles/acme/tasks/main.yml ``` Note that you need to have your own templates directory, containing your own templates. diff --git a/ansible/diagnostic.yml b/ansible/diagnostic.yml index 5baaec2b..377a8e14 100644 --- a/ansible/diagnostic.yml +++ b/ansible/diagnostic.yml @@ -3,9 +3,9 @@ hosts: all tasks: - name: Setup Ruby - ansible.builtin.import_tasks: roles/common/tasks/main.yml + import_tasks: roles/common/tasks/main.yml - name: Setup KPM - ansible.builtin.import_tasks: roles/kpm/tasks/main.yml + import_tasks: roles/kpm/tasks/main.yml - name: Gather diagnostics killbill_diagnostics: kpm_path: "{{ kpm_path }}" diff --git a/ansible/flyway.yml b/ansible/flyway.yml index acb14c3e..07bb4fd0 100644 --- a/ansible/flyway.yml +++ b/ansible/flyway.yml @@ -3,6 +3,6 @@ hosts: all tasks: - name: Setup Ruby - ansible.builtin.import_tasks: roles/common/tasks/main.yml + import_tasks: roles/common/tasks/main.yml - name: Install Flyway - ansible.builtin.import_tasks: roles/migrations/tasks/flyway.yml + import_tasks: roles/migrations/tasks/flyway.yml diff --git a/ansible/java.yml b/ansible/java.yml index cfb3bfd8..79746525 100644 --- a/ansible/java.yml +++ b/ansible/java.yml @@ -7,4 +7,4 @@ java_home: /usr/lib/jvm/default-java tasks: - name: Install Java - ansible.builtin.import_tasks: roles/tomcat/tasks/java.yml + import_tasks: roles/tomcat/tasks/java.yml diff --git a/ansible/kaui.yml b/ansible/kaui.yml index 5662246a..3bf74e3f 100644 --- a/ansible/kaui.yml +++ b/ansible/kaui.yml @@ -5,8 +5,8 @@ kaui_kpm_yml: /var/lib/kaui/kpm.yml tasks: - name: Setup Ruby - ansible.builtin.import_tasks: roles/common/tasks/main.yml + import_tasks: roles/common/tasks/main.yml - name: Setup Tomcat - ansible.builtin.import_tasks: roles/tomcat/tasks/main.yml + import_tasks: roles/tomcat/tasks/main.yml - name: Install Kaui - ansible.builtin.import_tasks: roles/kaui/tasks/main.yml + import_tasks: roles/kaui/tasks/main.yml diff --git a/ansible/kaui_json_logging.yml b/ansible/kaui_json_logging.yml index cad70b58..e359daed 100644 --- a/ansible/kaui_json_logging.yml +++ b/ansible/kaui_json_logging.yml @@ -3,6 +3,6 @@ hosts: all tasks: - name: Download third-party dependencies - ansible.builtin.import_tasks: roles/kaui/tasks/json_logging.yml + import_tasks: roles/kaui/tasks/json_logging.yml - name: Enable Tomcat JSON logging - ansible.builtin.import_tasks: roles/tomcat/tasks/json_logging.yml + import_tasks: roles/tomcat/tasks/json_logging.yml diff --git a/ansible/killbill.yml b/ansible/killbill.yml index 81519ad3..e86498ce 100644 --- a/ansible/killbill.yml +++ b/ansible/killbill.yml @@ -3,8 +3,8 @@ hosts: all tasks: - name: Setup Ruby - ansible.builtin.import_tasks: roles/common/tasks/main.yml + import_tasks: roles/common/tasks/main.yml - name: Setup Tomcat - ansible.builtin.import_tasks: roles/tomcat/tasks/main.yml + import_tasks: roles/tomcat/tasks/main.yml - name: Install Kill Bill - ansible.builtin.import_tasks: roles/killbill/tasks/main.yml + import_tasks: roles/killbill/tasks/main.yml diff --git a/ansible/killbill_json_logging.yml b/ansible/killbill_json_logging.yml index 8830ea86..dd937983 100644 --- a/ansible/killbill_json_logging.yml +++ b/ansible/killbill_json_logging.yml @@ -3,4 +3,4 @@ hosts: all tasks: - name: Enable Tomcat JSON logging - ansible.builtin.import_tasks: roles/tomcat/tasks/json_logging.yml + import_tasks: roles/tomcat/tasks/json_logging.yml diff --git a/ansible/kpm.yml b/ansible/kpm.yml index b10f454a..23803270 100644 --- a/ansible/kpm.yml +++ b/ansible/kpm.yml @@ -3,4 +3,4 @@ hosts: all tasks: - name: Install KPM - ansible.builtin.import_tasks: roles/kpm/tasks/main.yml + import_tasks: roles/kpm/tasks/main.yml diff --git a/ansible/roles/common/tasks/main.yml b/ansible/roles/common/tasks/main.yml index a134f58d..359ed309 100644 --- a/ansible/roles/common/tasks/main.yml +++ b/ansible/roles/common/tasks/main.yml @@ -1,7 +1,6 @@ --- - name: Setup Ansible ruby interpreter - ansible.builtin.set_fact: - ansible_ruby_interpreter: "{{ kpm_path }}/lib/ruby/bin/ruby" + set_fact: ansible_ruby_interpreter="{{ kpm_path }}/lib/ruby/bin/ruby" tags: common -# noqa: var-naming[no-role-prefix] -# Required for ansible-lint: variable must stay named 'ansible_ruby_interpreter' for Ansible to pick it up \ No newline at end of file + # noqa: var-naming[no-role-prefix] + # Required for ansible-lint: variable must stay named 'ansible_ruby_interpreter' for Ansible to pick it up \ No newline at end of file diff --git a/ansible/roles/kaui/tasks/main.yml b/ansible/roles/kaui/tasks/main.yml index 1d8f32e5..301a3495 100644 --- a/ansible/roles/kaui/tasks/main.yml +++ b/ansible/roles/kaui/tasks/main.yml @@ -81,7 +81,7 @@ # Expand the WAR to speed up startup - name: Expand WAR file if not already done become: true - ansible.builtin.command: | + command: | "{{ java_home }}/bin/jar" -xf ../ROOT.war args: chdir: "{{ catalina_base }}/{{ kaui_webapps }}/ROOT" diff --git a/ansible/roles/killbill/tasks/main.yml b/ansible/roles/killbill/tasks/main.yml index d2993358..f9d56463 100644 --- a/ansible/roles/killbill/tasks/main.yml +++ b/ansible/roles/killbill/tasks/main.yml @@ -96,7 +96,7 @@ # Expand the WAR to speed up startup - name: Expand WAR file if not already done become: true - ansible.builtin.command: | + command: | "{{ java_home }}/bin/jar" -xf ../ROOT.war args: chdir: "{{ catalina_base }}/{{ kb_webapps }}/ROOT" diff --git a/ansible/roles/kpm/tasks/main.yml b/ansible/roles/kpm/tasks/main.yml index cf211746..23117d8f 100644 --- a/ansible/roles/kpm/tasks/main.yml +++ b/ansible/roles/kpm/tasks/main.yml @@ -64,12 +64,9 @@ # To make things easier - name: Rename noarch KPM directory become: true - ansible.builtin.command: - cmd: > - mv {{ kpm_install_dir }}/kpm-{{ kpm_version }}-noarch - {{ kpm_install_dir }}/kpm-{{ kpm_version }}-linux-{{ ansible_architecture }} - creates: "{{ kpm_install_dir }}/kpm-{{ kpm_version }}-linux-{{ ansible_architecture }}" + command: "mv {{ kpm_install_dir }}/kpm-{{ kpm_version }}-noarch {{ kpm_install_dir }}/kpm-{{ kpm_version }}-linux-{{ ansible_architecture }}" when: not kpm_bin.stat.exists and kpm_arch_test.status >= 400 + changed_when: false tags: kpm - name: Download pre-built KPM @@ -106,7 +103,7 @@ # The first time KPM is run, a Gemfile.lock needs to written out - name: Initialize KPM become: true - ansible.builtin.command: | + command: | "{{ kpm_path }}/kpm" version args: creates: "{{ kpm_path }}/lib/vendor/Gemfile.lock" diff --git a/ansible/roles/migrations/tasks/flyway.yml b/ansible/roles/migrations/tasks/flyway.yml index d3165661..91600875 100644 --- a/ansible/roles/migrations/tasks/flyway.yml +++ b/ansible/roles/migrations/tasks/flyway.yml @@ -14,7 +14,7 @@ register: migrations_flyway_bin tags: migrations -- name: Download Kill Bill Flyway metadata +- name: Install Flyway if not present when: not migrations_flyway_bin.stat.exists tags: migrations block: diff --git a/ansible/roles/tomcat/tasks/native.yml b/ansible/roles/tomcat/tasks/native.yml index 1cca7d4b..9ea5b122 100644 --- a/ansible/roles/tomcat/tasks/native.yml +++ b/ansible/roles/tomcat/tasks/native.yml @@ -34,7 +34,10 @@ tags: native - name: Find apr-1-config path - ansible.builtin.command: which apr-1-config + ansible.builtin.command: + argv: + - which + - apr-1-config register: tomcat_apr_config_path_output changed_when: false tags: native @@ -49,7 +52,11 @@ tags: native block: - name: Find tomcat_gnu_arch path - ansible.builtin.command: dpkg-architecture --query DEB_BUILD_GNU_TYPE + ansible.builtin.command: + argv: + - dpkg-architecture + - --query + - DEB_BUILD_GNU_TYPE register: tomcat_gnu_arch_output changed_when: false tags: native @@ -79,21 +86,23 @@ - name: Configure native libraries ansible.builtin.command: - cmd: > - ./configure - --build="{{ tomcat_gnu_arch }}" - --libdir="{{ tomcat_native_libdir }}" - --prefix="{{ catalina_home }}" - --with-apr="{{ tomcat_apr_config_path }}" - --with-java-home="{{ java_home }}" - --with-ssl=yes + argv: + - ./configure + - --build={{ tomcat_gnu_arch }} + - --libdir={{ tomcat_native_libdir }} + - --prefix={{ catalina_home }} + - --with-apr={{ tomcat_apr_config_path }} + - --with-java-home={{ java_home }} + - --with-ssl=yes chdir: "{{ tomcat_workspace.path }}/native" changed_when: false tags: native - name: Build native libraries ansible.builtin.command: - cmd: make all + argv: + - make + - all chdir: "{{ tomcat_workspace.path }}/native" changed_when: false tags: native @@ -101,7 +110,9 @@ - name: Install native libraries become: true ansible.builtin.command: - cmd: make install + argv: + - make + - install chdir: "{{ tomcat_workspace.path }}/native" changed_when: false tags: native diff --git a/ansible/tomcat.yml b/ansible/tomcat.yml index 5541a7e8..58e6cf29 100644 --- a/ansible/tomcat.yml +++ b/ansible/tomcat.yml @@ -3,9 +3,9 @@ hosts: all tasks: - name: Install Tomcat - ansible.builtin.import_tasks: roles/tomcat/tasks/install.yml + import_tasks: roles/tomcat/tasks/install.yml - name: Install Tomcat native libraries - ansible.builtin.import_tasks: roles/tomcat/tasks/native.yml + import_tasks: roles/tomcat/tasks/native.yml when: java_home is defined - name: Setup Tomcat - ansible.builtin.import_tasks: roles/tomcat/tasks/main.yml + import_tasks: roles/tomcat/tasks/main.yml diff --git a/ansible/tomcat_restart.yml b/ansible/tomcat_restart.yml index 5590b602..d3be03e0 100644 --- a/ansible/tomcat_restart.yml +++ b/ansible/tomcat_restart.yml @@ -4,4 +4,4 @@ become: yes tasks: - name: Restart Tomcat - ansible.builtin.import_tasks: roles/tomcat/tasks/restart.yml + import_tasks: roles/tomcat/tasks/restart.yml diff --git a/ansible/tomcat_stop.yml b/ansible/tomcat_stop.yml index df5666d8..ea67b595 100644 --- a/ansible/tomcat_stop.yml +++ b/ansible/tomcat_stop.yml @@ -4,4 +4,4 @@ become: yes tasks: - name: Stop Tomcat - ansible.builtin.import_tasks: roles/tomcat/tasks/stop.yml + import_tasks: roles/tomcat/tasks/stop.yml diff --git a/docker/templates/base/latest/Dockerfile b/docker/templates/base/latest/Dockerfile index c73298b3..382214ff 100644 --- a/docker/templates/base/latest/Dockerfile +++ b/docker/templates/base/latest/Dockerfile @@ -58,7 +58,7 @@ WORKDIR $TOMCAT_HOME # Install ansible roles dependencies ARG KILLBILL_CLOUD_VERSION RUN ansible-galaxy collection install community.general && \ - ansible-galaxy install git+https://git@github.com/killbill/killbill-cloud.git,$KILLBILL_CLOUD_VERSION + ansible-galaxy install git+https://git@github.com/vnandwana/killbill-cloud.git,$KILLBILL_CLOUD_VERSION ENV KILLBILL_CLOUD_ANSIBLE_ROLES=$TOMCAT_HOME/.ansible/roles/killbill-cloud/ansible ENV ENV_HOST_IP=localhost ENV ANSIBLE_OPTS="-i localhost, \ @@ -74,6 +74,7 @@ ENV NEXUS_REPOSITORY=${NEXUS_REPOSITORY:-maven2} ENV KPM_INSTALL_DIR=/opt RUN ansible-playbook $ANSIBLE_OPTS \ -e kpm_install_dir=$KPM_INSTALL_DIR \ + -e kpm_path=$KPM_INSTALL_DIR/kpm-latest \ -e kpm_owner=$TOMCAT_OWNER \ -e kpm_group=$TOMCAT_GROUP \ -e nexus_url=$NEXUS_URL \ diff --git a/docker/templates/kaui/latest/Dockerfile.template b/docker/templates/kaui/latest/Dockerfile.template index 096fad5d..aed4b9f7 100644 --- a/docker/templates/kaui/latest/Dockerfile.template +++ b/docker/templates/kaui/latest/Dockerfile.template @@ -14,7 +14,9 @@ COPY ./kaui.sh $KAUI_INSTALL_DIR ENV KPM_INSTALL_CMD="ansible-playbook $ANSIBLE_OPTS \ -e kpm_install_dir=$KPM_INSTALL_DIR \ + -e kpm_path=$KPM_INSTALL_DIR/kpm-latest \ -e kpm_yml=$KAUI_INSTALL_DIR/kpm.yml \ + -e kaui_kpm_yml=$KAUI_INSTALL_DIR/kpm.yml \ -e tomcat_owner=$TOMCAT_OWNER \ -e tomcat_group=$TOMCAT_GROUP \ -e catalina_base=$CATALINA_BASE \ diff --git a/docker/templates/killbill/latest/Dockerfile.template b/docker/templates/killbill/latest/Dockerfile.template index 4fa5262a..7a4715de 100644 --- a/docker/templates/killbill/latest/Dockerfile.template +++ b/docker/templates/killbill/latest/Dockerfile.template @@ -26,7 +26,9 @@ COPY ./shiro.ini.template $KILLBILL_INSTALL_DIR/config ENV KPM_INSTALL_CMD="ansible-playbook $ANSIBLE_OPTS \ -e kpm_install_dir=$KPM_INSTALL_DIR \ + -e kpm_path=$KPM_INSTALL_DIR/kpm-latest \ -e kpm_yml=$KILLBILL_INSTALL_DIR/kpm.yml \ + -e killbill_kpm_yml=$KILLBILL_INSTALL_DIR/kpm.yml \ -e kb_config_dir=$KILLBILL_INSTALL_DIR \ -e kb_plugins_dir=$KILLBILL_INSTALL_DIR/bundles \ -e tomcat_owner=$TOMCAT_OWNER \ @@ -36,7 +38,9 @@ ENV KPM_INSTALL_CMD="ansible-playbook $ANSIBLE_OPTS \ ENV KPM_DIAGNOSTIC_CMD="ansible-playbook $ANSIBLE_OPTS \ -e kpm_install_dir=$KPM_INSTALL_DIR \ + -e kpm_path=$KPM_INSTALL_DIR/kpm-latest \ -e kpm_yml=$KILLBILL_INSTALL_DIR/kpm.yml \ + -e killbill_kpm_yml=$KILLBILL_INSTALL_DIR/kpm.yml \ -e kb_config_dir=$KILLBILL_INSTALL_DIR \ -e kb_plugins_dir=$KILLBILL_INSTALL_DIR/bundles \ -e tomcat_owner=$TOMCAT_OWNER \ @@ -47,6 +51,7 @@ ENV KPM_DIAGNOSTIC_CMD="ansible-playbook $ANSIBLE_OPTS \ ENV MIGRATIONS_CMD="ansible-playbook $ANSIBLE_OPTS \ -e kpm_install_dir=$KPM_INSTALL_DIR \ -e kpm_yml=$KILLBILL_INSTALL_DIR/kpm.yml \ + -e killbill_kpm_yml=$KILLBILL_INSTALL_DIR/kpm.yml \ -e kb_config_dir=$KILLBILL_INSTALL_DIR \ -e kb_plugins_dir=$KILLBILL_INSTALL_DIR/bundles \ -e flyway_owner=$TOMCAT_OWNER \ diff --git a/kpm/spec/kpm/remote/maven_central_api_calls_spec.rb b/kpm/spec/kpm/remote/maven_central_api_calls_spec.rb index acca9cf2..9307b13f 100644 --- a/kpm/spec/kpm/remote/maven_central_api_calls_spec.rb +++ b/kpm/spec/kpm/remote/maven_central_api_calls_spec.rb @@ -9,7 +9,7 @@ logger.level = Logger::DEBUG logger end - let(:test_version) { '0.24.15' } + let(:test_version) { '0.24.16' } let(:coordinates_map) do { version: test_version, group_id: 'org.kill-bill.billing', @@ -38,7 +38,7 @@ parsed_pom = REXML::Document.new(File.read(destination)) expect(parsed_pom.elements['//groupId'].text).to eq('org.kill-bill.billing') expect(parsed_pom.elements['//artifactId'].text).to eq('killbill-oss-parent') - expect(parsed_pom.elements['//version'].text).to eq('0.146.63') + expect(parsed_pom.elements['//version'].text).to eq('0.146.67') } end