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: 202109
Choose a base ref
...
head repository: docker/grouper_training
compare: 202205-post
Choose a head ref
Able to merge. These branches can be automatically merged.
  • 18 commits
  • 232 files changed
  • 1 contributor

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. Fix IDP deprecation warnings; minor container tweaks; add 20x docs

    credman committed Jan 30, 2022
    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. Prevent log4j config errors during image build

    credman committed May 6, 2022
    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. Add jq and xmlstarlet to student containers

    credman committed May 8, 2022
    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. the vpn_legacy loader doesn't need to run every minute

    credman committed Jun 2, 2022
    Copy the full SHA
    15f0957 View commit details
Showing with 2,953 additions and 48,850 deletions.
  1. +21 −236 Jenkinsfile
  2. +47 −0 TODO.md
  3. +4 −2 base/Dockerfile
  4. +29 −17 base/container_files/conf/grouper-loader.properties
  5. +3 −3 base/container_files/conf/grouper.properties
  6. 0 ...ner_files/seed-data/sisData.sql → base/container_files/conf/log4j.grouperContainerHost.properties
  7. +79 −0 base/container_files/conf/log4j2.xml
  8. +14 −4 base/container_files/conf/subject.properties
  9. +0 −16 base/container_files/httpd/rabbitmq.conf
  10. +233 −240 base/container_files/shibboleth-idp/conf/attribute-resolver.xml
  11. +2 −48 base/container_files/shibboleth-idp/metadata/grouper-sp.xml
  12. +16 −27 base/container_files/var-www-html/index.html
  13. +71 −0 docs/copy-paste-markdown/201.1.1.md
  14. +73 −0 docs/copy-paste-markdown/201.1.2.md
  15. +80 −0 docs/copy-paste-markdown/201.2.md
  16. +101 −0 docs/copy-paste-markdown/201.3.md
  17. +89 −0 docs/copy-paste-markdown/201.4.md
  18. +100 −0 docs/copy-paste-markdown/201.5.md
  19. +95 −0 docs/copy-paste-markdown/401.1.md
  20. +112 −0 docs/copy-paste-markdown/401.2.md
  21. 0 docs/{ → sphinx}/201/201.1.rst
  22. 0 docs/{ → sphinx}/201/201.2.rst
  23. 0 docs/{ → sphinx}/201/201.3.rst
  24. 0 docs/{ → sphinx}/201/201.4.rst
  25. 0 docs/{ → sphinx}/201/201.5.rst
  26. 0 docs/{ → sphinx}/201/examples/201-3-4.pspng-epa.grouper-loader.properties
  27. 0 docs/{ → sphinx}/201/examples/201-3-5.attribute-filter.xml
  28. 0 docs/{ → sphinx}/201/examples/201-4-4.pspng-epe.grouper-loader.properties
  29. 0 docs/{ → sphinx}/201/examples/201-4-5.attribute-filter.xml
  30. 0 docs/{ → sphinx}/201/index.rst
  31. 0 docs/{ → sphinx}/401/401.1.rst
  32. 0 docs/{ → sphinx}/401/401.2.rst
  33. 0 docs/{ → sphinx}/401/401.3.rst
  34. 0 docs/{ → sphinx}/401/401.4-example-solution.rst
  35. 0 docs/{ → sphinx}/401/401.4.rst
  36. 0 docs/{ → sphinx}/401/appendix.rst
  37. 0 docs/{ → sphinx}/401/examples/401.1.3-pspng-config.properties
  38. 0 docs/{ → sphinx}/401/examples/401.2.2-pspng-config.properties
  39. 0 docs/{ → sphinx}/401/examples/401.2.3-general-authn.xml
  40. 0 docs/{ → sphinx}/401/examples/401.2.3-mfa-authn-config.xml
  41. 0 docs/{ → sphinx}/401/examples/401.2.4-athletics-dept.txt
  42. 0 docs/{ → sphinx}/401/examples/401.2.5-banner-netids.txt
  43. 0 docs/{ → sphinx}/401/examples/401.3.2-grouper-loader.properties
  44. 0 docs/{ → sphinx}/401/examples/401.3.2-grouper.client.properties
  45. 0 docs/{ → sphinx}/401/index.rst
  46. 0 docs/{ → sphinx}/Makefile
  47. 0 docs/{ → sphinx}/conf.py
  48. BIN docs/{ → sphinx}/figures/201-add-ref-students.png
  49. BIN docs/{ → sphinx}/figures/201-anna-smith-trace-priv.png
  50. BIN docs/{ → sphinx}/figures/201-anna-smith-trace.png
  51. BIN docs/{ → sphinx}/figures/201-asmith989-attest.png
  52. BIN docs/{ → sphinx}/figures/201-create-students-group.png
  53. BIN docs/{ → sphinx}/figures/201-ePA-attribute-release.png
  54. BIN docs/{ → sphinx}/figures/201-ePA-member-vis.png
  55. BIN docs/{ → sphinx}/figures/201-ePA-member.png
  56. BIN docs/{ → sphinx}/figures/201-ePA-policy-groups.png
  57. BIN docs/{ → sphinx}/figures/201-ePA-pspng-run.png
  58. BIN docs/{ → sphinx}/figures/201-ePA-pspng.png
  59. BIN docs/{ → sphinx}/figures/201-ePE-value.png
  60. BIN docs/{ → sphinx}/figures/201-eduPersonAffiliation-app-template.png
  61. BIN docs/{ → sphinx}/figures/201-fin-report-attest-audit-log.png
  62. BIN docs/{ → sphinx}/figures/201-fin-report-reader.png
  63. BIN docs/{ → sphinx}/figures/201-fin-report-write-audit.png
  64. BIN docs/{ → sphinx}/figures/201-fin-report-writer-attestation.png
  65. BIN docs/{ → sphinx}/figures/201-fin-report-writer.png
  66. BIN docs/{ → sphinx}/figures/201-jsmith-trace.png
  67. BIN docs/{ → sphinx}/figures/201-new-vpn-app.png
  68. BIN docs/{ → sphinx}/figures/201-new-vpn-policy.png
  69. BIN docs/{ → sphinx}/figures/201-priv-grant-fin-mgr.png
  70. BIN docs/{ → sphinx}/figures/201-pspng-entitlements-run-job.png
  71. BIN docs/{ → sphinx}/figures/201-review-priv-fin-mgr.png
  72. BIN docs/{ → sphinx}/figures/201-students-change-of-status.png
  73. BIN docs/{ → sphinx}/figures/201-students-direct-membership.png
  74. BIN docs/{ → sphinx}/figures/201-students-end-date.png
  75. BIN docs/{ → sphinx}/figures/201-students-indirect-membership.png
  76. BIN docs/{ → sphinx}/figures/201-students-visualization.png
  77. BIN docs/{ → sphinx}/figures/201-vpn-access.png
  78. BIN docs/{ → sphinx}/figures/201-vpn-access2.png
  79. BIN docs/{ → sphinx}/figures/201-vpn-allow-audit.png
  80. BIN docs/{ → sphinx}/figures/201-vpn-allow-privileges.png
  81. BIN docs/{ → sphinx}/figures/201-wiki-app.png
  82. BIN docs/{ → sphinx}/figures/201-wiki-policy.png
  83. BIN docs/{ → sphinx}/figures/201-wiki-user-pspng.png
  84. BIN docs/{ → sphinx}/figures/401-banderson-mfa-enabled.png
  85. BIN docs/{ → sphinx}/figures/401-board-effect-ann-admin-priv.png
  86. BIN docs/{ → sphinx}/figures/401-board-effect-ann-privs.png
  87. BIN docs/{ → sphinx}/figures/401-board-effect-ann-updated-privs.png
  88. BIN docs/{ → sphinx}/figures/401-board-effect-app.png
  89. BIN docs/{ → sphinx}/figures/401-board-effect-final-privs.png
  90. BIN docs/{ → sphinx}/figures/401-board-effect-finance-committee.png
  91. BIN docs/{ → sphinx}/figures/401-board-effect-finance-privs-admin.png
  92. BIN docs/{ → sphinx}/figures/401-board-effect-my-groups.png
  93. BIN docs/{ → sphinx}/figures/401-board-effect-rabbitmq.png
  94. BIN docs/{ → sphinx}/figures/401-board-effect-ref-board-privs.png
  95. BIN docs/{ → sphinx}/figures/401-board-effect-trace-ann-updaters.png
  96. BIN docs/{ → sphinx}/figures/401-board-effect-workroom-helpers.png
  97. BIN docs/{ → sphinx}/figures/401-board-effect-workroom.png
  98. BIN docs/{ → sphinx}/figures/401-bsmith458-trace-membership.png
  99. BIN docs/{ → sphinx}/figures/401-bsmith458-trace.png
  100. BIN docs/{ → sphinx}/figures/401-ldap-loader-diag.png
  101. BIN docs/{ → sphinx}/figures/401-ldap-loader-logs.png
  102. BIN docs/{ → sphinx}/figures/401-legacy-ldap-vpn.png
  103. BIN docs/{ → sphinx}/figures/401-lms-solution.png
  104. BIN docs/{ → sphinx}/figures/401-mfa-amber-join.png
  105. BIN docs/{ → sphinx}/figures/401-mfa-amber-leave.png
  106. BIN docs/{ → sphinx}/figures/401-mfa-athletics.png
  107. BIN docs/{ → sphinx}/figures/401-mfa-banner-2days-review.png
  108. BIN docs/{ → sphinx}/figures/401-mfa-banner-2days.png
  109. BIN docs/{ → sphinx}/figures/401-mfa-banner-minus-faculty.png
  110. BIN docs/{ → sphinx}/figures/401-mfa-clean-policy.png
  111. BIN docs/{ → sphinx}/figures/401-mfa-enabled.png
  112. BIN docs/{ → sphinx}/figures/401-mfa-opt-in-privs.png
  113. BIN docs/{ → sphinx}/figures/401-mfa-opt-in-security.png
  114. BIN docs/{ → sphinx}/figures/401-mfa-policy.png
  115. BIN docs/{ → sphinx}/figures/401-other-cohorts.png
  116. BIN docs/{ → sphinx}/figures/401-vpn-acls-visual.png
  117. BIN docs/{ → sphinx}/figures/401-vpn-add-jsmith.png
  118. BIN docs/{ → sphinx}/figures/401-vpn-ajohnson409-privs.png
  119. BIN docs/{ → sphinx}/figures/401-vpn-attest.png
  120. BIN docs/{ → sphinx}/figures/401-vpn-audit-list.png
  121. BIN docs/{ → sphinx}/figures/401-vpn-authorized-ldap.png
  122. BIN docs/{ → sphinx}/figures/401-vpn-blee172-pit-query.png
  123. BIN docs/{ → sphinx}/figures/401-vpn-legacy-members.png
  124. BIN docs/{ → sphinx}/figures/401-vpn-misc-attest.png
  125. BIN docs/{ → sphinx}/figures/401-vpn-policy.png
  126. BIN docs/{ → sphinx}/figures/401-vpn-provision-to.png
  127. BIN docs/{ → sphinx}/figures/401-vpn-trace-blee172.png
  128. 0 docs/{ → sphinx}/index.rst
  129. 0 docs/{ → sphinx}/make.bat
  130. +2 −0 ex101/ex101.1.1/container_files/seed-data/bootstrap.gsh
  131. +1,667 −1,651 ex101/ex101.1.1/container_files/seed-data/sisData.sql
  132. +0 −1 ex101/run.sh
  133. +0 −33 ex201/ex201.1.1/Dockerfile
  134. +0 −218 ex201/ex201.1.1/container_files/seed-data/bootstrap.gsh
  135. +0 −3,762 ex201/ex201.1.1/container_files/seed-data/sisData.sql
  136. +0 −18,328 ex201/ex201.1.1/container_files/seed-data/users.ldif
  137. +0 −29 ex201/ex201.1.end/Dockerfile
  138. +0 −109 ex201/ex201.1.end/container_files/seed-data/bootstrap.gsh
  139. 0 ex201/ex201.1.end/container_files/seed-data/users.ldif
  140. +0 −29 ex201/ex201.2.1/Dockerfile
  141. +0 −3 ex201/ex201.2.1/container_files/seed-data/bootstrap.gsh
  142. 0 ex201/ex201.2.1/container_files/seed-data/sisData.sql
  143. 0 ex201/ex201.2.1/container_files/seed-data/users.ldif
  144. +0 −29 ex201/ex201.2.end/Dockerfile
  145. +0 −33 ex201/ex201.2.end/container_files/seed-data/bootstrap.gsh
  146. 0 ex201/ex201.2.end/container_files/seed-data/sisData.sql
  147. 0 ex201/ex201.2.end/container_files/seed-data/users.ldif
  148. +0 −29 ex201/ex201.3.1/Dockerfile
  149. +0 −3 ex201/ex201.3.1/container_files/seed-data/bootstrap.gsh
  150. 0 ex201/ex201.3.1/container_files/seed-data/sisData.sql
  151. 0 ex201/ex201.3.1/container_files/seed-data/users.ldif
  152. +0 −29 ex201/ex201.3.end/Dockerfile
  153. +0 −38 ex201/ex201.3.end/container_files/seed-data/bootstrap.gsh
  154. 0 ex201/ex201.3.end/container_files/seed-data/sisData.sql
  155. 0 ex201/ex201.3.end/container_files/seed-data/users.ldif
  156. +0 −29 ex201/ex201.4.1/Dockerfile
  157. +0 −3 ex201/ex201.4.1/container_files/seed-data/bootstrap.gsh
  158. 0 ex201/ex201.4.1/container_files/seed-data/sisData.sql
  159. 0 ex201/ex201.4.1/container_files/seed-data/users.ldif
  160. +0 −30 ex201/ex201.4.end/Dockerfile
  161. +0 −66 ex201/ex201.4.end/container_files/attribute-filter.xml
  162. +0 −43 ex201/ex201.4.end/container_files/seed-data/bootstrap.gsh
  163. 0 ex201/ex201.4.end/container_files/seed-data/sisData.sql
  164. 0 ex201/ex201.4.end/container_files/seed-data/users.ldif
  165. +0 −29 ex201/ex201.5.1/Dockerfile
  166. +0 −3 ex201/ex201.5.1/container_files/seed-data/bootstrap.gsh
  167. 0 ex201/ex201.5.1/container_files/seed-data/sisData.sql
  168. 0 ex201/ex201.5.1/container_files/seed-data/users.ldif
  169. +0 −29 ex201/ex201.5.end/Dockerfile
  170. +0 −60 ex201/ex201.5.end/container_files/seed-data/bootstrap.gsh
  171. 0 ex201/ex201.5.end/container_files/seed-data/sisData.sql
  172. 0 ex201/ex201.5.end/container_files/seed-data/users.ldif
  173. +35 −16 ex201/ex201.end/container_files/seed-data/bootstrap.gsh
  174. +0 −30 ex211/ex211.1.1/Dockerfile
  175. +0 −3 ex211/ex211.1.1/container_files/seed-data/bootstrap.gsh
  176. 0 ex211/ex211.1.1/container_files/seed-data/sisData.sql
  177. 0 ex211/ex211.1.1/container_files/seed-data/users.ldif
  178. +0 −7 ex211/manualBuild.sh
  179. +0 −30 ex301/ex301.4.1/Dockerfile
  180. +0 −3 ex301/ex301.4.1/container_files/seed-data/bootstrap.gsh
  181. 0 ex301/ex301.4.1/container_files/seed-data/sisData.sql
  182. 0 ex301/ex301.4.1/container_files/seed-data/users.ldif
  183. +0 −7 ex301/manualBuild.sh
  184. +0 −15 ex401/class-files/AthleticDeptartmentUsers.txt
  185. +0 −16 ex401/class-files/CisoQuestionalUsers.txt
  186. +0 −35 ex401/class-files/Non-facultyBannerUsers.txt
  187. +0 −25 ex401/class-files/VisitingScholars.txt
  188. +0 −35 ex401/ex401.1.1/Dockerfile
  189. +0 −112 ex401/ex401.1.1/container_files/grouper.client.properties
  190. +0 −92 ex401/ex401.1.1/container_files/grouper.properties
  191. +0 −53 ex401/ex401.1.1/container_files/seed-data/bootstrap.gsh
  192. +0 −17 ex401/ex401.1.1/container_files/seed-data/ephemeral.gsh
  193. +0 −3,562 ex401/ex401.1.1/container_files/seed-data/sisData.sql
  194. +0 −58 ex401/ex401.1.1/container_files/seed-data/skeleton.gsh
  195. +0 −18,314 ex401/ex401.1.1/container_files/seed-data/users.ldif
  196. +0 −76 ex401/ex401.1.1/container_files/subject.properties
  197. +0 −29 ex401/ex401.1.end/Dockerfile
  198. +0 −130 ex401/ex401.1.end/container_files/seed-data/bootstrap.gsh
  199. 0 ex401/ex401.1.end/container_files/seed-data/sisData.sql
  200. 0 ex401/ex401.1.end/container_files/seed-data/users.ldif
  201. +0 −29 ex401/ex401.3.1/Dockerfile
  202. +0 −3 ex401/ex401.3.1/container_files/seed-data/bootstrap.gsh
  203. 0 ex401/ex401.3.1/container_files/seed-data/sisData.sql
  204. 0 ex401/ex401.3.1/container_files/seed-data/users.ldif
  205. +0 −29 ex401/ex401.3.end/Dockerfile
  206. +0 −155 ex401/ex401.3.end/container_files/seed-data/bootstrap.gsh
  207. 0 ex401/ex401.3.end/container_files/seed-data/sisData.sql
  208. 0 ex401/ex401.3.end/container_files/seed-data/users.ldif
  209. +0 −29 ex401/ex401.5.1/Dockerfile
  210. +0 −3 ex401/ex401.5.1/container_files/seed-data/bootstrap.gsh
  211. 0 ex401/ex401.5.1/container_files/seed-data/sisData.sql
  212. 0 ex401/ex401.5.1/container_files/seed-data/users.ldif
  213. +0 −29 ex401/ex401.5.end/Dockerfile
  214. +0 −110 ex401/ex401.5.end/container_files/seed-data/bootstrap.gsh
  215. 0 ex401/ex401.5.end/container_files/seed-data/sisData.sql
  216. 0 ex401/ex401.5.end/container_files/seed-data/users.ldif
  217. +0 −29 ex401/ex401.7.1/Dockerfile
  218. +0 −3 ex401/ex401.7.1/container_files/seed-data/bootstrap.gsh
  219. 0 ex401/ex401.7.1/container_files/seed-data/sisData.sql
  220. 0 ex401/ex401.7.1/container_files/seed-data/users.ldif
  221. +0 −29 ex401/ex401.7.end/Dockerfile
  222. +0 −142 ex401/ex401.7.end/container_files/seed-data/bootstrap.gsh
  223. 0 ex401/ex401.7.end/container_files/seed-data/sisData.sql
  224. 0 ex401/ex401.7.end/container_files/seed-data/users.ldif
  225. +71 −10 ex401/ex401.end/container_files/seed-data/bootstrap.gsh
  226. +0 −30 full-demo/Dockerfile
  227. +0 −245 full-demo/container_files/demo.gsh
  228. +0 −75 full-demo/container_files/subject.properties
  229. +3 −16 gte
  230. +1 −1 internal/createNew.txt
  231. +5 −6 internal/mkstudent.sh
  232. +0 −3 start-rabbitmq.sh
257 changes: 21 additions & 236 deletions Jenkinsfile
@@ -1,24 +1,29 @@

/** 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 = '202205'

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 {
environment {
maintainer = "t"
imagename = 'g'
tag = 'l'
@@ -45,9 +50,9 @@ pipeline {
sh 'rm -rf ../bin/*'
sh 'mv ./bin/* ../bin/.'
}
}
}
}
}
}
stage('Clean') {
steps {
script {
@@ -61,16 +66,6 @@ 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 {
@@ -79,226 +74,16 @@ pipeline {
// 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 ->
EXERCISE_FOLDERS.each { exercise, folder ->
def build = docker.build("${maintainer}/${imagename}:${exercise}-${tag}", "--no-cache --pull --build-arg VERSION_TAG=${tag} ${folder}")
build.push("${exercise}-${tag}")
}

/*
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 +96,8 @@ pipeline {
}
}
}
post {
always {
post {
always {
echo 'Done Building.'
}
failure {
47 changes: 47 additions & 0 deletions TODO.md
@@ -0,0 +1,47 @@
TODO
=====


20220X
- look for both 202205-POST (./gte) and 202205 (Jenkinsfile etc) when changing image versions

202205
-------
- Once upgrading to 2.6.9, can remove gsh code marked "Temporary fix for GRP-4024" from bootstrap.gsh files
- Bug in 2.6.8, attr_read isn't enough to see attributes; need admin privileges on the object to see the option in the menu
- Somehow add docker-compose to the vms so we don't have to download it


202202
-------

- (NO IT REQUIRES JAVA 11+) Upgrade Shibboleth IDP to latest 4.1.4 (low priority). But the configs have been modified to reduce warnings
- How to get rid of the LDAP warnings that come up the first time the page comes up?
- The All Faculty/Staff group is missing the ref type
- Fix this error

Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
- Main wiki page doesn't have a link to container configure, install, etc.
- Add a gsh report to 401.2

Slide updates:
201.1.1
- Years need to be +1. Then grace period graduate should be 9 months (end date 2022/03/01)
201.1.2
- The slide says exchange students are not in SIS. Are they a loaded basis group, ref group, what?
- Should transfer students be a basis group? Is there such a thing as an ad hoc basis group?
- slide 6, why is Create Digital Policy there twice?
- should we do away with the All Staff being a rollup of 100's of groups? Hard to see visualization that way
201.2
- Add some visualization steps to easily understand the app structure
- (DONE) Already has an All Faculty/Staff group, don't need to add faculty and staff separately
201.3
- We can either add the type to the policy folder, or autoassign types to the folder above, which will do the same
- the ePA_full_sync daemon job has already been created
201.5
- (DONE) ref:role:financeManager needs to add the ref type
- after adding Carrie Campbell, should go to the policy group to show it's there


211.3
- TEST: What privs do you need to add an assignment to an assignment