Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: docker/grouper_training
base: d87feed
Choose a base ref
...
head repository: docker/grouper_training
compare: 1bd2a75
Choose a head ref

Commits on Sep 28, 2021

  1. Fix typo in 201.end

    credman committed Sep 28, 2021
    Copy the full SHA
    539a22e View commit details

Commits on Jan 15, 2022

  1. Copy the full SHA
    c3ed4ab View commit details
  2. New branch 202202

    credman committed Jan 15, 2022
    Copy the full SHA
    090c7eb View commit details

Commits on Jan 30, 2022

  1. Copy the full SHA
    01ee272 View commit details

Commits on Feb 13, 2022

  1. Remove rabbitmq

    credman committed Feb 13, 2022
    Copy the full SHA
    ad366d9 View commit details
  2. Install docker-compose in vm

    credman committed Feb 13, 2022
    Copy the full SHA
    eac274a View commit details
  3. Copy the full SHA
    3a43715 View commit details

Commits on Feb 14, 2022

  1. Add a GSH report to 401.1

    credman committed Feb 14, 2022
    Copy the full SHA
    5b0ae6b View commit details

Commits on May 5, 2022

  1. Copy the full SHA
    5ee607e View commit details
  2. Copy the full SHA
    a12eb32 View commit details

Commits on May 6, 2022

  1. Copy the full SHA
    523e322 View commit details

Commits on May 7, 2022

  1. Copy the full SHA
    8577694 View commit details
  2. Copy the full SHA
    43f93ff View commit details
  3. Copy the full SHA
    1045a21 View commit details

Commits on May 8, 2022

  1. Copy the full SHA
    f330dce View commit details

Commits on May 23, 2022

  1. Copy the full SHA
    7ec626f View commit details

Commits on May 26, 2022

  1. Changes post-May 2022

    * GROUPER_WS_GROUPER_AUTH=true
    * subject source changes: wildcard uid in search; sort by last, first
    * IDP don't encrypt assertion
    credman committed May 26, 2022
    Copy the full SHA
    b92fc3b View commit details

Commits on Jun 2, 2022

  1. Copy the full SHA
    15f0957 View commit details

Commits on Aug 22, 2022

  1. Copy the full SHA
    586a8b6 View commit details
  2. Copy the full SHA
    5718429 View commit details

Commits on Aug 23, 2022

  1. Copy the full SHA
    4d7b4ac View commit details

Commits on Oct 30, 2022

  1. Copy the full SHA
    00cf8c9 View commit details

Commits on Oct 31, 2022

  1. Grouper 2.6.15.1 -> 2.6.16.2; remove symlink /usr/local/bin/java, sin…

    …ce the Grouper entrypoint sets owner to tomcat which causes issues
    credman committed Oct 31, 2022
    Copy the full SHA
    d57dea2 View commit details

Commits on Nov 1, 2022

  1. Temporary(?) workaround for GRP-4450 - Provisioner metadata is readon…

    …ly unless "can change" is true
    credman committed Nov 1, 2022
    Copy the full SHA
    70e914c View commit details
  2. Copy the full SHA
    5c583e8 View commit details
  3. Copy the full SHA
    a20a26a View commit details

Commits on Jan 17, 2023

  1. Copy the full SHA
    0552b59 View commit details
  2. Copy the full SHA
    def6dcd View commit details

Commits on Jan 20, 2023

  1. Copy the full SHA
    d3988c3 View commit details
  2. Bug fix in lesson build

    credman committed Jan 20, 2023
    Copy the full SHA
    5424f4d View commit details

Commits on Feb 21, 2023

  1. Upgrade 2.6.18.1 -> 2.6.19.3; fix eduPersonAffiliation provisioner fo…

    …r compatibility with field changes
    credman committed Feb 21, 2023
    Copy the full SHA
    85b4167 View commit details
  2. Create the proper eduPersonAffiliation full and incremental daemons; …

    …disable the incremental
    credman committed Feb 21, 2023
    Copy the full SHA
    f7e98a0 View commit details

Commits on Feb 28, 2023

  1. commit

    mchyzer committed Feb 28, 2023
    Copy the full SHA
    e3e7ff3 View commit details

Commits on Aug 21, 2023

  1. Update Dockerfile

    chubing committed Aug 21, 2023
    Copy the full SHA
    e41d956 View commit details

Commits on Aug 29, 2023

  1. Copy the full SHA
    8461a2e View commit details

Commits on Aug 30, 2023

  1. Update images for Grouper v4

    * Use Shib IDP v4
    * Installed package changes to support Rocky Linux 8
    * Additional php packages and configuration to support php apps and fcgi
    * mysql max_connections 750
    * Openldap defaults to mdb instead of hdb
    * Curl does not have built-in ldap support, so use netcat for ping tests
    credman committed Aug 30, 2023
    Copy the full SHA
    3ee0996 View commit details
  2. Copy the full SHA
    32563ad View commit details

Commits on Sep 6, 2023

  1. Copy the full SHA
    8731369 View commit details
  2. Copy the full SHA
    50f4fb8 View commit details

Commits on Sep 28, 2023

  1. Copy the full SHA
    7c4c740 View commit details

Commits on Oct 6, 2023

  1. multiarch

    mchyzer committed Oct 6, 2023
    Copy the full SHA
    80f7d48 View commit details
  2. fix TARGET_BRANCH

    chubing committed Oct 6, 2023
    Copy the full SHA
    86df736 View commit details

Commits on Oct 9, 2023

  1. workaround

    mchyzer committed Oct 9, 2023
    Copy the full SHA
    1add274 View commit details
  2. changes

    mchyzer committed Oct 9, 2023
    Copy the full SHA
    379bf75 View commit details

Commits on Nov 8, 2023

  1. back to pass

    mchyzer committed Nov 8, 2023
    Copy the full SHA
    0be5429 View commit details

Commits on Nov 20, 2023

  1. Copy the full SHA
    b37eb21 View commit details

Commits on Jan 4, 2024

  1. Copy the full SHA
    2120965 View commit details

Commits on Jan 6, 2024

  1. Copy the full SHA
    54f2cab View commit details

Commits on Jan 10, 2024

  1. Copy the full SHA
    954ce43 View commit details
  2. Add missing DDL constraints

    credman committed Jan 10, 2024
    Copy the full SHA
    4025e5b View commit details
Showing with 9,471 additions and 54,115 deletions.
  1. +39 −243 Jenkinsfile
  2. +276 −0 Slide_Diagrams.drawio
  3. +58 −0 TODO.md
  4. +145 −67 base/Dockerfile
  5. +0 −51 base/container_files/conf/grouper.properties
  6. +0 −117 base/container_files/etc/phpMyAdmin/config.inc.php
  7. +84 −12 base/container_files/etc/phpldapadmin/config.php
  8. BIN ...ntainer_files/grouper/conf/edu/internet2/middleware/grouper/app/loader/NotificationDaemon$1.class
  9. BIN ...ainer_files/grouper/conf/edu/internet2/middleware/grouper/app/loader/NotificationDaemon$2$1.class
  10. BIN ...ntainer_files/grouper/conf/edu/internet2/middleware/grouper/app/loader/NotificationDaemon$2.class
  11. BIN ...container_files/grouper/conf/edu/internet2/middleware/grouper/app/loader/NotificationDaemon.class
  12. +41 −17 base/container_files/{ → grouper}/conf/grouper-loader.properties
  13. +7 −4 base/container_files/{ → grouper}/conf/grouper.hibernate.properties
  14. 0 ...s/seed-data/sisData.sql → base/container_files/grouper/conf/log4j.grouperContainerHost.properties
  15. +79 −0 base/container_files/grouper/conf/log4j2.xml
  16. 0 base/container_files/{ → grouper}/conf/morphString.properties
  17. 0 ...1.end/container_files/seed-data/users.ldif → base/container_files/grouper/conf/subject.properties
  18. +5 −5 base/container_files/httpd/grouper-testapp.conf
  19. +1 −0 base/container_files/httpd/grouper-www.conf
  20. +6 −0 base/container_files/httpd/mailHog.conf
  21. +0 −77 base/container_files/httpd/phpMyAdmin.conf
  22. +0 −16 base/container_files/httpd/rabbitmq.conf
  23. +3 −0 base/container_files/ldap/README
  24. +3 −3 base/container_files/{seed-data → ldap}/domain.ldif
  25. +160 −0 base/container_files/ldap/eduperson.ldif
  26. +2 −2 base/container_files/{seed-data → ldap}/memberOf.ldif
  27. +120 −0 base/container_files/ldap/nis.ldif
  28. 0 base/container_files/{seed-data → ldap}/users.ldif
  29. BIN base/container_files/pgadmin/pgadmin4.db
  30. +36 −0 base/container_files/postgres/00-init_dbs_and_users.sql
  31. +97 −0 base/container_files/postgres/01-init_grouper_mp_tables.sql
  32. +7 −0 base/container_files/postgres/pg_hba.conf
  33. +23 −0 base/container_files/postgres/postgresql.conf
  34. +9 −0 base/container_files/repos/shibboleth.repo
  35. +0 −4 base/container_files/seed-data/bootstrap.gsh
  36. +0 −41 base/container_files/seed-data/eduPerson.ldif
  37. +1 −1 base/container_files/shibboleth-idp/conf/attribute-filter.xml
  38. +152 −259 base/container_files/shibboleth-idp/conf/attribute-resolver.xml
  39. +76 −0 base/container_files/shibboleth-idp/conf/relying-party.xml
  40. +2 −48 base/container_files/shibboleth-idp/metadata/grouper-sp.xml
  41. +63 −40 base/container_files/shibboleth-sp/attribute-map.xml
  42. +1 −1 base/container_files/shibboleth-sp/idp-metadata.xml
  43. +222 −45 base/container_files/shibboleth-sp/shibboleth2.xml
  44. +24 −8 base/container_files/tier-support/supervisord-training.conf
  45. +11 −0 base/container_files/usr-local-bin/grouper
  46. +0 −18 base/container_files/usr-local-bin/grouperScriptHooks.sh
  47. +110 −0 base/container_files/usr-local-bin/librarySetupPipe.sh
  48. +1 −1 base/container_files/var-www-html/app/accessError.html
  49. +31 −0 base/container_files/var-www-html/app/index.php
  50. +0 −18 base/container_files/var-www-html/app/index.py
  51. 0 base/container_files/var-www-html/app/{admin → wiki}/index.html
  52. +111 −103 base/container_files/var-www-html/index.html
  53. +71 −0 docs/copy-paste-markdown/201.1.1.md
  54. +73 −0 docs/copy-paste-markdown/201.1.2.md
  55. +80 −0 docs/copy-paste-markdown/201.2.md
  56. +101 −0 docs/copy-paste-markdown/201.3.md
  57. +89 −0 docs/copy-paste-markdown/201.4.md
  58. +100 −0 docs/copy-paste-markdown/201.5.md
  59. +95 −0 docs/copy-paste-markdown/401.1.md
  60. +112 −0 docs/copy-paste-markdown/401.2.md
  61. 0 docs/{ → sphinx}/201/201.1.rst
  62. 0 docs/{ → sphinx}/201/201.2.rst
  63. 0 docs/{ → sphinx}/201/201.3.rst
  64. 0 docs/{ → sphinx}/201/201.4.rst
  65. 0 docs/{ → sphinx}/201/201.5.rst
  66. 0 docs/{ → sphinx}/201/examples/201-3-4.pspng-epa.grouper-loader.properties
  67. 0 docs/{ → sphinx}/201/examples/201-3-5.attribute-filter.xml
  68. 0 docs/{ → sphinx}/201/examples/201-4-4.pspng-epe.grouper-loader.properties
  69. 0 docs/{ → sphinx}/201/examples/201-4-5.attribute-filter.xml
  70. 0 docs/{ → sphinx}/201/index.rst
  71. 0 docs/{ → sphinx}/401/401.1.rst
  72. 0 docs/{ → sphinx}/401/401.2.rst
  73. 0 docs/{ → sphinx}/401/401.3.rst
  74. 0 docs/{ → sphinx}/401/401.4-example-solution.rst
  75. 0 docs/{ → sphinx}/401/401.4.rst
  76. 0 docs/{ → sphinx}/401/appendix.rst
  77. 0 docs/{ → sphinx}/401/examples/401.1.3-pspng-config.properties
  78. 0 docs/{ → sphinx}/401/examples/401.2.2-pspng-config.properties
  79. 0 docs/{ → sphinx}/401/examples/401.2.3-general-authn.xml
  80. 0 docs/{ → sphinx}/401/examples/401.2.3-mfa-authn-config.xml
  81. 0 docs/{ → sphinx}/401/examples/401.2.4-athletics-dept.txt
  82. 0 docs/{ → sphinx}/401/examples/401.2.5-banner-netids.txt
  83. 0 docs/{ → sphinx}/401/examples/401.3.2-grouper-loader.properties
  84. 0 docs/{ → sphinx}/401/examples/401.3.2-grouper.client.properties
  85. 0 docs/{ → sphinx}/401/index.rst
  86. 0 docs/{ → sphinx}/Makefile
  87. 0 docs/{ → sphinx}/conf.py
  88. BIN docs/{ → sphinx}/figures/201-add-ref-students.png
  89. BIN docs/{ → sphinx}/figures/201-anna-smith-trace-priv.png
  90. BIN docs/{ → sphinx}/figures/201-anna-smith-trace.png
  91. BIN docs/{ → sphinx}/figures/201-asmith989-attest.png
  92. BIN docs/{ → sphinx}/figures/201-create-students-group.png
  93. BIN docs/{ → sphinx}/figures/201-ePA-attribute-release.png
  94. BIN docs/{ → sphinx}/figures/201-ePA-member-vis.png
  95. BIN docs/{ → sphinx}/figures/201-ePA-member.png
  96. BIN docs/{ → sphinx}/figures/201-ePA-policy-groups.png
  97. BIN docs/{ → sphinx}/figures/201-ePA-pspng-run.png
  98. BIN docs/{ → sphinx}/figures/201-ePA-pspng.png
  99. BIN docs/{ → sphinx}/figures/201-ePE-value.png
  100. BIN docs/{ → sphinx}/figures/201-eduPersonAffiliation-app-template.png
  101. BIN docs/{ → sphinx}/figures/201-fin-report-attest-audit-log.png
  102. BIN docs/{ → sphinx}/figures/201-fin-report-reader.png
  103. BIN docs/{ → sphinx}/figures/201-fin-report-write-audit.png
  104. BIN docs/{ → sphinx}/figures/201-fin-report-writer-attestation.png
  105. BIN docs/{ → sphinx}/figures/201-fin-report-writer.png
  106. BIN docs/{ → sphinx}/figures/201-jsmith-trace.png
  107. BIN docs/{ → sphinx}/figures/201-new-vpn-app.png
  108. BIN docs/{ → sphinx}/figures/201-new-vpn-policy.png
  109. BIN docs/{ → sphinx}/figures/201-priv-grant-fin-mgr.png
  110. BIN docs/{ → sphinx}/figures/201-pspng-entitlements-run-job.png
  111. BIN docs/{ → sphinx}/figures/201-review-priv-fin-mgr.png
  112. BIN docs/{ → sphinx}/figures/201-students-change-of-status.png
  113. BIN docs/{ → sphinx}/figures/201-students-direct-membership.png
  114. BIN docs/{ → sphinx}/figures/201-students-end-date.png
  115. BIN docs/{ → sphinx}/figures/201-students-indirect-membership.png
  116. BIN docs/{ → sphinx}/figures/201-students-visualization.png
  117. BIN docs/{ → sphinx}/figures/201-vpn-access.png
  118. BIN docs/{ → sphinx}/figures/201-vpn-access2.png
  119. BIN docs/{ → sphinx}/figures/201-vpn-allow-audit.png
  120. BIN docs/{ → sphinx}/figures/201-vpn-allow-privileges.png
  121. BIN docs/{ → sphinx}/figures/201-wiki-app.png
  122. BIN docs/{ → sphinx}/figures/201-wiki-policy.png
  123. BIN docs/{ → sphinx}/figures/201-wiki-user-pspng.png
  124. BIN docs/{ → sphinx}/figures/401-banderson-mfa-enabled.png
  125. BIN docs/{ → sphinx}/figures/401-board-effect-ann-admin-priv.png
  126. BIN docs/{ → sphinx}/figures/401-board-effect-ann-privs.png
  127. BIN docs/{ → sphinx}/figures/401-board-effect-ann-updated-privs.png
  128. BIN docs/{ → sphinx}/figures/401-board-effect-app.png
  129. BIN docs/{ → sphinx}/figures/401-board-effect-final-privs.png
  130. BIN docs/{ → sphinx}/figures/401-board-effect-finance-committee.png
  131. BIN docs/{ → sphinx}/figures/401-board-effect-finance-privs-admin.png
  132. BIN docs/{ → sphinx}/figures/401-board-effect-my-groups.png
  133. BIN docs/{ → sphinx}/figures/401-board-effect-rabbitmq.png
  134. BIN docs/{ → sphinx}/figures/401-board-effect-ref-board-privs.png
  135. BIN docs/{ → sphinx}/figures/401-board-effect-trace-ann-updaters.png
  136. BIN docs/{ → sphinx}/figures/401-board-effect-workroom-helpers.png
  137. BIN docs/{ → sphinx}/figures/401-board-effect-workroom.png
  138. BIN docs/{ → sphinx}/figures/401-bsmith458-trace-membership.png
  139. BIN docs/{ → sphinx}/figures/401-bsmith458-trace.png
  140. BIN docs/{ → sphinx}/figures/401-ldap-loader-diag.png
  141. BIN docs/{ → sphinx}/figures/401-ldap-loader-logs.png
  142. BIN docs/{ → sphinx}/figures/401-legacy-ldap-vpn.png
  143. BIN docs/{ → sphinx}/figures/401-lms-solution.png
  144. BIN docs/{ → sphinx}/figures/401-mfa-amber-join.png
  145. BIN docs/{ → sphinx}/figures/401-mfa-amber-leave.png
  146. BIN docs/{ → sphinx}/figures/401-mfa-athletics.png
  147. BIN docs/{ → sphinx}/figures/401-mfa-banner-2days-review.png
  148. BIN docs/{ → sphinx}/figures/401-mfa-banner-2days.png
  149. BIN docs/{ → sphinx}/figures/401-mfa-banner-minus-faculty.png
  150. BIN docs/{ → sphinx}/figures/401-mfa-clean-policy.png
  151. BIN docs/{ → sphinx}/figures/401-mfa-enabled.png
  152. BIN docs/{ → sphinx}/figures/401-mfa-opt-in-privs.png
  153. BIN docs/{ → sphinx}/figures/401-mfa-opt-in-security.png
  154. BIN docs/{ → sphinx}/figures/401-mfa-policy.png
  155. BIN docs/{ → sphinx}/figures/401-other-cohorts.png
  156. BIN docs/{ → sphinx}/figures/401-vpn-acls-visual.png
  157. BIN docs/{ → sphinx}/figures/401-vpn-add-jsmith.png
  158. BIN docs/{ → sphinx}/figures/401-vpn-ajohnson409-privs.png
  159. BIN docs/{ → sphinx}/figures/401-vpn-attest.png
  160. BIN docs/{ → sphinx}/figures/401-vpn-audit-list.png
  161. BIN docs/{ → sphinx}/figures/401-vpn-authorized-ldap.png
  162. BIN docs/{ → sphinx}/figures/401-vpn-blee172-pit-query.png
  163. BIN docs/{ → sphinx}/figures/401-vpn-legacy-members.png
  164. BIN docs/{ → sphinx}/figures/401-vpn-misc-attest.png
  165. BIN docs/{ → sphinx}/figures/401-vpn-policy.png
  166. BIN docs/{ → sphinx}/figures/401-vpn-provision-to.png
  167. BIN docs/{ → sphinx}/figures/401-vpn-trace-blee172.png
  168. 0 docs/{ → sphinx}/index.rst
  169. 0 docs/{ → sphinx}/make.bat
  170. +29 −15 ex101/ex101.1.1/Dockerfile
  171. +419 −0 ex101/ex101.1.1/container_files/grouper/bootstrap.gsh
  172. +199 −0 ex101/ex101.1.1/container_files/grouper/conf_import/grouper-loader.properties.import
  173. 0 ...-ui.properties → ex101/ex101.1.1/container_files/grouper/conf_import/grouper-ui.properties.import
  174. +165 −0 ex101/ex101.1.1/container_files/grouper/conf_import/grouper.properties.import
  175. +3 −0 ...erties → ex101/ex101.1.1/container_files/grouper/conf_import/grouper.text.en.us.properties.import
  176. +15 −10 ...ubject.properties → ex101/ex101.1.1/container_files/grouper/conf_import/subject.properties.import
  177. 0 ex101/ex101.1.1/container_files/{seed-data → ldap}/users.ldif
  178. +153 −0 ex101/ex101.1.1/container_files/postgres/hr_depts.sql
  179. +2,952 −0 ex101/ex101.1.1/container_files/postgres/hr_jobs.sql
  180. +644 −0 ex101/ex101.1.1/container_files/postgres/sis_courses.sql
  181. +4 −5,488 ex101/ex101.1.1/container_files/{seed-data/sisData.sql → postgres/sis_enrollment.sql}
  182. +1,807 −0 ex101/ex101.1.1/container_files/postgres/sis_programs.sql
  183. +0 −536 ex101/ex101.1.1/container_files/seed-data/bootstrap.gsh
  184. +0 −1 ex101/run.sh
  185. +0 −33 ex201/ex201.1.1/Dockerfile
  186. +0 −218 ex201/ex201.1.1/container_files/seed-data/bootstrap.gsh
  187. +0 −3,762 ex201/ex201.1.1/container_files/seed-data/sisData.sql
  188. +0 −18,328 ex201/ex201.1.1/container_files/seed-data/users.ldif
  189. +0 −29 ex201/ex201.1.end/Dockerfile
  190. +0 −109 ex201/ex201.1.end/container_files/seed-data/bootstrap.gsh
  191. +0 −29 ex201/ex201.2.1/Dockerfile
  192. +0 −3 ex201/ex201.2.1/container_files/seed-data/bootstrap.gsh
  193. 0 ex201/ex201.2.1/container_files/seed-data/sisData.sql
  194. 0 ex201/ex201.2.1/container_files/seed-data/users.ldif
  195. +0 −29 ex201/ex201.2.end/Dockerfile
  196. +0 −33 ex201/ex201.2.end/container_files/seed-data/bootstrap.gsh
  197. 0 ex201/ex201.2.end/container_files/seed-data/sisData.sql
  198. 0 ex201/ex201.2.end/container_files/seed-data/users.ldif
  199. +0 −29 ex201/ex201.3.1/Dockerfile
  200. +0 −3 ex201/ex201.3.1/container_files/seed-data/bootstrap.gsh
  201. 0 ex201/ex201.3.1/container_files/seed-data/sisData.sql
  202. 0 ex201/ex201.3.1/container_files/seed-data/users.ldif
  203. +0 −29 ex201/ex201.3.end/Dockerfile
  204. +0 −38 ex201/ex201.3.end/container_files/seed-data/bootstrap.gsh
  205. 0 ex201/ex201.3.end/container_files/seed-data/sisData.sql
  206. 0 ex201/ex201.3.end/container_files/seed-data/users.ldif
  207. +0 −29 ex201/ex201.4.1/Dockerfile
  208. +0 −3 ex201/ex201.4.1/container_files/seed-data/bootstrap.gsh
  209. 0 ex201/ex201.4.1/container_files/seed-data/sisData.sql
  210. 0 ex201/ex201.4.1/container_files/seed-data/users.ldif
  211. +0 −30 ex201/ex201.4.end/Dockerfile
  212. +0 −66 ex201/ex201.4.end/container_files/attribute-filter.xml
  213. +0 −43 ex201/ex201.4.end/container_files/seed-data/bootstrap.gsh
  214. 0 ex201/ex201.4.end/container_files/seed-data/sisData.sql
  215. 0 ex201/ex201.4.end/container_files/seed-data/users.ldif
  216. +0 −29 ex201/ex201.5.1/Dockerfile
  217. +0 −3 ex201/ex201.5.1/container_files/seed-data/bootstrap.gsh
  218. 0 ex201/ex201.5.1/container_files/seed-data/sisData.sql
  219. 0 ex201/ex201.5.1/container_files/seed-data/users.ldif
  220. +0 −29 ex201/ex201.5.end/Dockerfile
  221. +0 −60 ex201/ex201.5.end/container_files/seed-data/bootstrap.gsh
  222. 0 ex201/ex201.5.end/container_files/seed-data/sisData.sql
  223. 0 ex201/ex201.5.end/container_files/seed-data/users.ldif
  224. +14 −14 ex201/ex201.end/Dockerfile
  225. +125 −112 ex201/ex201.end/container_files/{seed-data → grouper}/bootstrap.gsh
  226. 0 ex201/ex201.end/container_files/seed-data/sisData.sql
  227. 0 ex201/ex201.end/container_files/seed-data/users.ldif
  228. +0 −30 ex211/ex211.1.1/Dockerfile
  229. +0 −3 ex211/ex211.1.1/container_files/seed-data/bootstrap.gsh
  230. 0 ex211/ex211.1.1/container_files/seed-data/sisData.sql
  231. 0 ex211/ex211.1.1/container_files/seed-data/users.ldif
  232. +0 −7 ex211/manualBuild.sh
  233. +0 −30 ex301/ex301.4.1/Dockerfile
  234. +0 −3 ex301/ex301.4.1/container_files/seed-data/bootstrap.gsh
  235. 0 ex301/ex301.4.1/container_files/seed-data/sisData.sql
  236. 0 ex301/ex301.4.1/container_files/seed-data/users.ldif
  237. +0 −7 ex301/manualBuild.sh
  238. +0 −15 ex401/class-files/AthleticDeptartmentUsers.txt
  239. +0 −16 ex401/class-files/CisoQuestionalUsers.txt
  240. +0 −35 ex401/class-files/Non-facultyBannerUsers.txt
  241. +0 −25 ex401/class-files/VisitingScholars.txt
  242. +0 −35 ex401/ex401.1.1/Dockerfile
  243. +0 −112 ex401/ex401.1.1/container_files/grouper.client.properties
  244. +0 −92 ex401/ex401.1.1/container_files/grouper.properties
  245. +0 −53 ex401/ex401.1.1/container_files/seed-data/bootstrap.gsh
  246. +0 −17 ex401/ex401.1.1/container_files/seed-data/ephemeral.gsh
  247. +0 −3,562 ex401/ex401.1.1/container_files/seed-data/sisData.sql
  248. +0 −58 ex401/ex401.1.1/container_files/seed-data/skeleton.gsh
  249. +0 −18,314 ex401/ex401.1.1/container_files/seed-data/users.ldif
  250. +0 −76 ex401/ex401.1.1/container_files/subject.properties
  251. +0 −29 ex401/ex401.1.end/Dockerfile
  252. +0 −130 ex401/ex401.1.end/container_files/seed-data/bootstrap.gsh
  253. 0 ex401/ex401.1.end/container_files/seed-data/sisData.sql
  254. 0 ex401/ex401.1.end/container_files/seed-data/users.ldif
  255. +0 −29 ex401/ex401.3.1/Dockerfile
  256. +0 −3 ex401/ex401.3.1/container_files/seed-data/bootstrap.gsh
  257. 0 ex401/ex401.3.1/container_files/seed-data/sisData.sql
  258. 0 ex401/ex401.3.1/container_files/seed-data/users.ldif
  259. +0 −29 ex401/ex401.3.end/Dockerfile
  260. +0 −155 ex401/ex401.3.end/container_files/seed-data/bootstrap.gsh
  261. 0 ex401/ex401.3.end/container_files/seed-data/sisData.sql
  262. 0 ex401/ex401.3.end/container_files/seed-data/users.ldif
  263. +0 −29 ex401/ex401.5.1/Dockerfile
  264. +0 −3 ex401/ex401.5.1/container_files/seed-data/bootstrap.gsh
  265. 0 ex401/ex401.5.1/container_files/seed-data/sisData.sql
  266. 0 ex401/ex401.5.1/container_files/seed-data/users.ldif
  267. +0 −29 ex401/ex401.5.end/Dockerfile
  268. +0 −110 ex401/ex401.5.end/container_files/seed-data/bootstrap.gsh
  269. 0 ex401/ex401.5.end/container_files/seed-data/sisData.sql
  270. 0 ex401/ex401.5.end/container_files/seed-data/users.ldif
  271. +0 −29 ex401/ex401.7.1/Dockerfile
  272. +0 −3 ex401/ex401.7.1/container_files/seed-data/bootstrap.gsh
  273. 0 ex401/ex401.7.1/container_files/seed-data/sisData.sql
  274. 0 ex401/ex401.7.1/container_files/seed-data/users.ldif
  275. +0 −29 ex401/ex401.7.end/Dockerfile
  276. +0 −142 ex401/ex401.7.end/container_files/seed-data/bootstrap.gsh
  277. 0 ex401/ex401.7.end/container_files/seed-data/sisData.sql
  278. 0 ex401/ex401.7.end/container_files/seed-data/users.ldif
  279. +15 −16 ex401/ex401.end/Dockerfile
  280. +151 −110 ex401/ex401.end/container_files/{seed-data → grouper}/bootstrap.gsh
  281. 0 ex401/ex401.end/container_files/seed-data/sisData.sql
  282. 0 ex401/ex401.end/container_files/seed-data/users.ldif
  283. +0 −30 full-demo/Dockerfile
  284. +0 −245 full-demo/container_files/demo.gsh
  285. +0 −75 full-demo/container_files/subject.properties
  286. +15 −29 gte
  287. +2 −1 internal/createNew.txt
  288. +12 −6 internal/mkstudent.sh
  289. +20 −20 manualBuild.sh
  290. +0 −3 start-rabbitmq.sh
282 changes: 39 additions & 243 deletions Jenkinsfile
@@ -1,27 +1,33 @@

/** Builds images for the Grouper Training Env
* Each class has a set of images. Each class's image sets are independent, but within
* Each class has a set of images. Each class's image sets are independent, but within
* a class each image builds upon the prior exercise. Therefore all images are built
* first and then push to the repo. Order of the build is important, but ordering of the
* first and then push to the repo. Order of the build is important, but ordering of the
* image pushes are not. If an image is missing the extra layers get pushed, then the
* missing layers only get tagged when they are pushed.
**/


/** Each class has a set of modules with a set of steps.
* For examples, 101.1.1, 101.1.2, 101.1.3, 101.2.1, 101.2.2, etc.
* Each step is an associated docker image.
* exerciseSets has the class name and an array of the number of steps for module.
/** Each class is an associated docker image.
* EXERCISE_FOLDERS has the image name and corresponding build folder
**/
// TODO unused?
exerciseSets = ['101.1.1', ]

TARGET_BRANCH = '202503'

EXERCISE_FOLDERS = [
"base": "base",
"101.1.1": "ex101/ex101.1.1",
//"201.end": "ex201/ex201.end",
//"401.end": "ex401/ex401.end",
]

pipeline {
agent any
environment {
agent { node { label 'docker-multi-arch' } }
environment {
maintainer = "t"
imagename = 'g'
tag = 'l'
DOCKERHUBPW=credentials('tieradmin-dockerhub-pw')
}
stages {
stage('Setting build context') {
@@ -45,9 +51,9 @@ pipeline {
sh 'rm -rf ../bin/*'
sh 'mv ./bin/* ../bin/.'
}
}
}
}
}
}
stage('Clean') {
steps {
script {
@@ -61,246 +67,36 @@ pipeline {
}
}
}
}
stage('Build Base') {
steps {
script {
docker.withRegistry('https://registry.hub.docker.com/', "dockerhub-${maintainer}") {
def baseImg = docker.build("${maintainer}/${imagename}:base-${tag}", "--no-cache --pull base")
baseImg.push("base-${tag}")
}
}
}
}
stage('Build exerciseSets') {
steps {
script {
docker.withRegistry('https://registry.hub.docker.com/', "dockerhub-${maintainer}") {
// def tagSet = generateTagSet()
// def builds = build(tagSet)

if(env.BRANCH_NAME == "202109") {
if(env.BRANCH_NAME == TARGET_BRANCH) {
//builds.each{ k, v -> echo ("push ${k}") } //for local testing
// builds.each{ k, v -> v.push(k) } <- not used anymore
def exerciseFolders = [
"base": "base",
"101.1.1": "ex101/ex101.1.1",
"201.end": "ex201/ex201.end",
//"201.1.1": "ex201/ex201.1.1",
//"201.1.end": "ex201/ex201.1.end",
//"201.2.1": "ex201/ex201.2.1",
//"201.2.end": "ex201/ex201.2.end",
//"201.3.1": "ex201/ex201.3.1",
//"201.3.end": "ex201/ex201.3.end",
//"201.4.1": "ex201/ex201.4.1",
//"201.4.end": "ex201/ex201.4.end",
//"201.5.1": "ex201/ex201.5.1",
//"201.5.end": "ex201/ex201.5.end",
//"211.1.1": "ex211/ex211.1.1",
//"301.4.1": "ex301/ex301.4.1",
//"401.1.1": "ex401/ex401.1.1",
//"401.1.end": "ex401/ex401.1.end",
//"401.3.1": "ex401/ex401.3.1",
//"401.3.end": "ex401/ex401.3.end",
//"full_demo": "full-demo,",
]

exerciseFolders.each { exercise, folder ->
def build = docker.build("${maintainer}/${imagename}:${exercise}-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} ${folder}")
build.push("${exercise}-${tag}")
// the following command needs to be run first on a new node, but not after that
// sh 'docker buildx create --use --name multiarch --append'
EXERCISE_FOLDERS.each { exercise, folder ->
// old non multi-arch way
// def build = docker.build("${maintainer}/${imagename}:${exercise}-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} ${folder}")
// build.push("${exercise}-${tag}")

// switch to buildx, which is not supported by the jenkins docker plugin
sh 'docker buildx inspect --bootstrap'
sh 'docker buildx ls'
sh 'docker login -u tieradmin -p $DOCKERHUBPW'
sh 'docker buildx inspect --bootstrap'
sh 'docker buildx ls'
sh "docker buildx build --platform linux/amd64 -t ${imagename} --build-arg VERSION_TAG=${tag} --load ${folder}"
sh "docker buildx build --platform linux/arm64 -t ${imagename}:arm64 --build-arg VERSION_TAG=${tag} --load ${folder}"
echo "Pushing image ${maintainer}/${imagename}:${exercise}-${tag} to dockerhub..."
sh "docker buildx build --push --platform linux/arm64,linux/amd64 -t ${maintainer}/${imagename}:${exercise}-${tag} --build-arg VERSION_TAG=${tag} ${folder}"
}

/*
def build = docker.build("${maintainer}/${imagename}:101.1.1-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} ex101/ex101.1.1")
build.push("101.1.1-${tag}")
build = docker.build("${maintainer}/${imagename}:base-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} base")
build.push("base-${tag}")
build = docker.build("${maintainer}/${imagename}:full_demo-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} full-demo/")
build.push("full_demo-${tag}")
build = docker.build("${maintainer}/${imagename}:401.1.1-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} ex401/ex401.1.1")
build.push("401.1.1-${tag}")
build = docker.build("${maintainer}/${imagename}:401.1.end-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} ex401/ex401.1.end")
build.push("401.1.end-${tag}")
build = docker.build("${maintainer}/${imagename}:401.3.1-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} ex401/ex401.3.1")
build.push("401.3.1-${tag}")
build = docker.build("${maintainer}/${imagename}:401.3.end-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} ex401/ex401.3.end")
build.push("401.3.end-${tag}")
build = docker.build("${maintainer}/${imagename}:301.4.1-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} ex301/ex301.4.1")
build.push("301.4.1-${tag}")
build = docker.build("${maintainer}/${imagename}:201.1.1-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} ex201/ex201.1.1")
build.push("201.1.1-${tag}")
build = docker.build("${maintainer}/${imagename}:201.1.end-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} ex201/ex201.1.end")
build.push("201.1.end-${tag}")
build = docker.build("${maintainer}/${imagename}:201.2.1-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} ex201/ex201.2.1")
build.push("201.2.1-${tag}")
build = docker.build("${maintainer}/${imagename}:201.2.end-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} ex201/ex201.2.end")
build.push("201.2.end-${tag}")
build = docker.build("${maintainer}/${imagename}:201.3.1-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} ex201/ex201.3.1")
build.push("201.3.1-${tag}")
build = docker.build("${maintainer}/${imagename}:201.3.end-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} ex201/ex201.3.end")
build.push("201.3.end-${tag}")
build = docker.build("${maintainer}/${imagename}:201.4.1-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} ex201/ex201.4.1")
build.push("201.4.1-${tag}")
build = docker.build("${maintainer}/${imagename}:201.4.end-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} ex201/ex201.4.end")
build.push("201.4.end-${tag}")
build = docker.build("${maintainer}/${imagename}:201.5.1-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} ex201/ex201.5.1")
build.push("201.5.1-${tag}")
build = docker.build("${maintainer}/${imagename}:201.5.end-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} ex201/ex201.5.end")
build.push("201.5.end-${tag}")
build = docker.build("${maintainer}/${imagename}:211.1.1-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} ex211/ex211.1.1")
build.push("211.1.1-${tag}")
build = docker.build("${maintainer}/${imagename}:101.1.1-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} ex101/ex101.1.1")
build.push("101.1.1-${tag}")
*/

/*
build = docker.build("${maintainer}/${imagename}:-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} /")
build.push("-${tag}")
build = docker.build("${maintainer}/${imagename}:-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} /")
build.push("-${tag}")
build = docker.build("${maintainer}/${imagename}:-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} /")
build.push("-${tag}")
build = docker.build("${maintainer}/${imagename}:-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} /")
build.push("-${tag}")
build = docker.build("${maintainer}/${imagename}:-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} /")
build.push("-${tag}")
*/




/*
build = docker.build("${maintainer}/${imagename}:-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} /")
build.push("-${tag}")
build = docker.build("${maintainer}/${imagename}:-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} /")
build.push("-${tag}")
build = docker.build("${maintainer}/${imagename}:-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} /")
build.push("-${tag}")
build = docker.build("${maintainer}/${imagename}:-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} /")
build.push("-${tag}")
build = docker.build("${maintainer}/${imagename}:-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} /")
build.push("-${tag}")
build = docker.build("${maintainer}/${imagename}:-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} /")
build.push("-${tag}")
build = docker.build("${maintainer}/${imagename}:-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} /")
build.push("-${tag}")
build = docker.build("${maintainer}/${imagename}:-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} /")
build.push("-${tag}")
build = docker.build("${maintainer}/${imagename}:-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} /")
build.push("-${tag}")
build = docker.build("${maintainer}/${imagename}:-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} /")
build.push("-${tag}")
build = docker.build("${maintainer}/${imagename}:-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} /")
build.push("-${tag}")
build = docker.build("${maintainer}/${imagename}:-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} /")
build.push("-${tag}")
build = docker.build("${maintainer}/${imagename}:-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} /")
build.push("-${tag}")
build = docker.build("${maintainer}/${imagename}:-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} /")
build.push("-${tag}")
build = docker.build("${maintainer}/${imagename}:-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} /")
build.push("-${tag}")
build = docker.build("${maintainer}/${imagename}:-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} /")
build.push("-${tag}")
build = docker.build("${maintainer}/${imagename}:-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} /")
build.push("-${tag}")
build = docker.build("${maintainer}/${imagename}:$i-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} $i/$i")
build.push("$i-${tag}")
build = docker.build("${maintainer}/${imagename}:401.3.end-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} ex401/ex401.3.end")
build.push("401.3.end-${tag}")
build = docker.build("${maintainer}/${imagename}:401.3.end-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} ex401/ex401.3.end")
build.push("401.3.end-${tag}")
build = docker.build("${maintainer}/${imagename}:401.3.end-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} ex401/ex401.3.end")
build.push("401.3.end-${tag}")
*/


/*
docker pull "tier/gte:401.3.end-$GROUPER_GTE_DOCKER_BRANCH"
docker pull "tier/gte:401.3.1-$GROUPER_GTE_DOCKER_BRANCH"
docker pull "tier/gte:401.1.end-$GROUPER_GTE_DOCKER_BRANCH"
docker pull "tier/gte:401.1.1-$GROUPER_GTE_DOCKER_BRANCH"
docker pull "tier/gte:301.4.1-$GROUPER_GTE_DOCKER_BRANCH"
docker pull "tier/gte:211.1.1-$GROUPER_GTE_DOCKER_BRANCH"
docker pull "tier/gte:201.5.end-$GROUPER_GTE_DOCKER_BRANCH"
docker pull "tier/gte:201.5.1-$GROUPER_GTE_DOCKER_BRANCH"
docker pull "tier/gte:201.4.end-$GROUPER_GTE_DOCKER_BRANCH"
ocker pull "tier/gte:201.4.1-$GROUPER_GTE_DOCKER_BRANCH"
docker pull "tier/gte:201.3.end-$GROUPER_GTE_DOCKER_BRANCH"
docker pull "tier/gte:201.3.1-$GROUPER_GTE_DOCKER_BRANCH"
docker pull "tier/gte:201.2.end-$GROUPER_GTE_DOCKER_BRANCH"
docker pull "tier/gte:201.2.1-$GROUPER_GTE_DOCKER_BRANCH"
docker pull "tier/gte:201.1.end-$GROUPER_GTE_DOCKER_BRANCH"
docker pull "tier/gte:201.1.1-$GROUPER_GTE_DOCKER_BRANCH"
docker pull "tier/gte:101.1.1-$GROUPER_GTE_DOCKER_BRANCH"
docker pull "tier/gte:full_demo-$GROUPER_GTE_DOCKER_BRANCH"
docker pull "tier/gte:base-$GROUPER_GTE_DOCKER_BRANCH"
def build = docker.build("${maintainer}/${imagename}:101.1.1-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} ex101/ex101.1.1")
build.push("101.1.1-${tag}")
build = docker.build("${maintainer}/${imagename}:211.1.1-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} ex211/ex211.1.1")
build.push("211.1.1-${tag}")
build = docker.build("${maintainer}/${imagename}:301.4.1-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} ex301/ex301.4.1")
build.push("301.4.1-${tag}")
build = docker.build("${maintainer}/${imagename}:full_demo-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} full-demo")
build.push("full_demo-${tag}")
*/

} else {
echo 'not building images, since the SCM branch is not 202109'
echo "not building images, since the SCM branch is not ${TARGET_BRANCH}"
}
}
}
}
}
@@ -311,8 +107,8 @@ pipeline {
}
}
}
post {
always {
post {
always {
echo 'Done Building.'
}
failure {