Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
99 commits
Select commit Hold shift + click to select a range
e35491b
no-op change to test pull mirroring
tomklapiscak Jun 12, 2025
79507b8
Allow root apps to optionally be sourced from a different repo
tomklapiscak Jun 12, 2025
2322644
Disable DocDB jobs when MONGODB-AWS auth mechanism is in use
tomklapiscak Jun 12, 2025
31b1d2f
make accessKey secret field optional
tomklapiscak Jun 12, 2025
43a5641
Revert "make accessKey secret field optional"
tomklapiscak Jun 12, 2025
ab67e0b
Revert "Disable DocDB jobs when MONGODB-AWS auth mechanism is in use"
tomklapiscak Jun 12, 2025
6b3c169
disable_doc_db_add_user_job, disable_doc_db_remove_user_job flags
tomklapiscak Jun 12, 2025
9c88054
fix logic
tomklapiscak Jun 12, 2025
2a1b7df
Helm params must be strings
tomklapiscak Jun 13, 2025
8984c34
Merge remote-tracking branch 'origin/main' into govcloud
tomklapiscak Jun 18, 2025
a9649c3
[patch] disable_image_pull_secrets flag
tomklapiscak Jun 18, 2025
c2d7c24
Merge remote-tracking branch 'origin/main' into govcloud
tomklapiscak Jun 25, 2025
7b9fe58
First pass at image-mirroring app
tomklapiscak Jun 26, 2025
fbd1f89
fix
tomklapiscak Jun 26, 2025
3af6f67
fix
tomklapiscak Jun 26, 2025
83115bd
testing use of IAM to assign ECR permissions to ecr-token-updater
tomklapiscak Jun 26, 2025
ecfcb58
fix
tomklapiscak Jun 26, 2025
1b55601
fix
tomklapiscak Jun 26, 2025
5a2ee83
fix
tomklapiscak Jun 26, 2025
e975d90
use IAM user creds to generate ECR token
tomklapiscak Jun 26, 2025
cf8bcd0
use cli image
tomklapiscak Jun 26, 2025
7a4f630
fix
tomklapiscak Jun 26, 2025
a852fc3
fix
tomklapiscak Jun 26, 2025
6a68dc0
remove temporary test pod
tomklapiscak Jun 26, 2025
c9387d5
ImageDigestMirrorSet
tomklapiscak Jun 27, 2025
3c0bf6a
fix
tomklapiscak Jun 27, 2025
38d5656
remove artiofactory from mirror sources
tomklapiscak Jun 27, 2025
f2bb0f3
update image-mirroring chart readme
tomklapiscak Jun 27, 2025
7134e91
add back artifactory to IDMS
tomklapiscak Jul 1, 2025
0967085
use ITMS for artifactory image
tomklapiscak Jul 1, 2025
3a1b280
also allow digest pulls to be redirected from artifactory
tomklapiscak Jul 1, 2025
3cf0ed5
install EFS CSI driver via ArgoCD
tomklapiscak Jul 2, 2025
4e71a71
fix (cis -> csi)
tomklapiscak Jul 2, 2025
366f98a
add secret needed for STS
tomklapiscak Jul 2, 2025
89bcf4a
support storage class generation for Manage
tomklapiscak Jul 9, 2025
4de5af4
also mirror quay.io
tomklapiscak Jul 9, 2025
2cb8545
can we redirect selected subfolders from quay.io?
tomklapiscak Jul 9, 2025
c1a05be
revert quay.io mirroring changes (not permitted)
tomklapiscak Jul 9, 2025
cc7dbfd
can we mirror specific images from quay.io?
tomklapiscak Jul 10, 2025
a8877d6
Revert "can we mirror specific images from quay.io?"
tomklapiscak Jul 10, 2025
fcc25dc
fix manage sanity test
tomklapiscak Jul 11, 2025
2aef184
Merge branch 'main' into govcloud
whitfiea Jul 17, 2025
4af4f91
support storage class definitions in facilities install
tomklapiscak Jul 18, 2025
241ed9f
[patch] add cli image parameter
caroazad Aug 26, 2025
8395dc3
[patch] revert replacement of image registry
caroazad Aug 26, 2025
719371d
[patch] remove extra spaces
caroazad Aug 26, 2025
d16d866
Merge pull request #341 from ibm-mas/mascore-6973
caroazad Aug 27, 2025
fa10576
[patch] update image mirror
caroazad Aug 29, 2025
2004a24
[patch] remove quay.io/ibmmas mirror for now
caroazad Aug 29, 2025
915692b
[patch] add git root ca
caroazad Aug 29, 2025
e4aac55
[patch] use icsp instead of idms for quay
caroazad Sep 3, 2025
4366b85
[patch] update cli image
caroazad Sep 3, 2025
78f47f8
[patch] add cli_image_repo
caroazad Sep 4, 2025
1b1193b
[patch] add default repo
caroazad Sep 4, 2025
8d58ffb
[patch] looks like we need default
caroazad Sep 4, 2025
7841456
[patch] syntax error
caroazad Sep 4, 2025
b0b4bad
[patch] remove from parameters
caroazad Sep 4, 2025
4440c9e
[patch] fix syntax error
caroazad Sep 5, 2025
e10a1df
[patch] missing dollar sign
caroazad Sep 5, 2025
fb2a891
Add chart for setting up redhat operators catalog mirror
tomklapiscak Sep 5, 2025
85fd875
parameterise rhcm catalog source
tomklapiscak Sep 5, 2025
e333353
fix
tomklapiscak Sep 5, 2025
5f2b2fb
Make additional mirror image tag/digest sources (e.g. artifactory) co…
tomklapiscak Sep 22, 2025
61e140a
Use separate source for AWS ECR creds in image mirroring app
tomklapiscak Sep 22, 2025
be25b13
update CLI image digest (15.6.0)
tomklapiscak Sep 26, 2025
7526bb5
Add job for ecr token to run now
whitfiea Sep 26, 2025
9db18fe
Fix cli_iamge_repo reference in Manage config template
tomklapiscak Sep 29, 2025
83dc00d
align CLI image digest with main branch
tomklapiscak Sep 30, 2025
137edd5
Merge remote-tracking branch 'origin/main' into govcloud
tomklapiscak Sep 30, 2025
cc4acc2
Merge branch 'main' into govcloud
tomklapiscak Sep 30, 2025
7c95fa7
Remove additional ecr-token updater Job
tomklapiscak Sep 30, 2025
c61403d
update cli_image_digest in remaining file (govcloud branch only)
tomklapiscak Sep 30, 2025
bda3681
Add internal_certificate_authority support
Oct 1, 2025
89f0cbc
don't install ibmcs catalog
whitfiea Oct 1, 2025
93435d8
Fix typo in facilities install template
Oct 2, 2025
64f2e9e
Update manage install template
Oct 2, 2025
7d96e3c
Update app spec logic
Oct 2, 2025
cf8c7b1
Update app spec logic
Oct 2, 2025
2d4449d
remove internal_certificate_authority from app spec
Oct 2, 2025
ce5f003
remove chart and lock
whitfiea Oct 6, 2025
e0c30fa
[patch] Optionally check icd_auth_key because it's not needed for AWS…
sachbalag Oct 9, 2025
f24faaf
Attempt to retrigger internal GHE repo update action
tomklapiscak Oct 9, 2025
7d4cabd
[patch] back out unused / unfinished changes to disable rendeting of …
tomklapiscak Oct 10, 2025
dbf0e1e
Merge remote-tracking branch 'origin/main' into govcloud
tomklapiscak Oct 17, 2025
06469ae
Fix issue where addons are being installed when not requested
tomklapiscak Oct 21, 2025
5502a20
Revert "Fix issue where addons are being installed when not requested"
tomklapiscak Oct 21, 2025
1bbb1fd
Fix issue where addons are being installed when not requested
tomklapiscak Oct 21, 2025
871f1d4
[minor] Support StorageClass generation in ibm-mas-suite-app-config (…
tomklapiscak Oct 28, 2025
8abc0a2
pass through storage_class_definitions to masapp-config app
tomklapiscak Oct 29, 2025
ab5ae18
Merge remote-tracking branch 'origin/main' into govcloud
tomklapiscak Oct 29, 2025
d515ee2
Revert temporary workaround for addons being installed inadvertently
tomklapiscak Oct 29, 2025
0dcbfb0
Remove unnecessary redhat-operators-mirror application
tomklapiscak Oct 30, 2025
969ebad
Combine disable_doc_db job flags into a single disable_docdb_instance…
tomklapiscak Oct 30, 2025
776c6d4
Remove defunct source_rootapps params
tomklapiscak Oct 30, 2025
28aac01
Docs for new disable_docdb_instance_user_management root param
tomklapiscak Oct 30, 2025
d63740f
Merge remote-tracking branch 'origin/main' into govcloud
tomklapiscak Nov 11, 2025
d009dd3
Merge remote-tracking branch 'origin/main' into govcloud
tomklapiscak Nov 24, 2025
227363b
[minor] Add Job to optionally configure MAS welcome message on instal…
tomklapiscak Dec 1, 2025
3fdc389
Merge remote-tracking branch 'origin/main' into govcloud
tomklapiscak Dec 1, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,3 @@ Documentation
[https://ibm-mas.github.io/gitops/](https://ibm-mas.github.io/gitops/)

[https://github.com/ibm-mas/gitops-demo/tree/002](https://github.com/ibm-mas/gitops-demo/tree/002)

11 changes: 11 additions & 0 deletions cluster-applications/000-efs-csi-driver/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
apiVersion: v2
name: efs-csi-driver
description: Configures AWS EFS CSI Driver
type: application
version: 1.0.0

dependencies:
- name: junitreporter
version: 1.0.0
repository: "file://../../sub-charts/junitreporter/"
condition: junitreporter.devops_mongo_uri != ""
3 changes: 3 additions & 0 deletions cluster-applications/000-efs-csi-driver/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
EFS CSI Driver
===============================================================================

Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
apiVersion: v1
kind: Secret
metadata:
name: aws-efs-cloud-credentials
namespace: openshift-cluster-csi-drivers
annotations:
cloudcredential.openshift.io/secret-sync: "true"
type: Opaque
stringData:
credentials: |
[default]
role_arn = {{ .Values.role_arn }}
web_identity_token_file = /var/run/secrets/openshift/serviceaccount/token
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
apiVersion: operator.openshift.io/v1
kind: ClusterCSIDriver
metadata:
name: efs.csi.aws.com
spec:
managementState: Managed
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
labels:
operators.coreos.com/aws-efs-csi-driver-operator.openshift-cluster-csi-drivers: ""
name: aws-efs-csi-driver-operator
namespace: openshift-cluster-csi-drivers
spec:
channel: "{{ .Values.channel }}"
installPlanApproval: Automatic
name: aws-efs-csi-driver-operator
source: "{{ .Values.catalog_source }}"
sourceNamespace: "{{ .Values.catalog_source_namespace }}"
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
apiVersion: operators.coreos.com/v1
kind: OperatorGroup
metadata:
name: openshift-cluster-csi-drivers-operator-group
namespace: openshift-cluster-csi-drivers
1 change: 1 addition & 0 deletions cluster-applications/000-efs-csi-driver/values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
---
11 changes: 11 additions & 0 deletions cluster-applications/000-image-mirroring/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
apiVersion: v2
name: image-mirroring
description: Establishes resources necessary to support image mirroring via an ImageDigestMirrorSet
type: application
version: 1.0.0

dependencies:
- name: junitreporter
version: 1.0.0
repository: "file://../../sub-charts/junitreporter/"
condition: junitreporter.devops_mongo_uri != ""
7 changes: 7 additions & 0 deletions cluster-applications/000-image-mirroring/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
MAS Image Mirroring
===============================================================================

Establishes resources necessary to support image mirroring via an ImageDigestMirrorSet:

- `ecr-token-rotator` CronJob that rotates the ECR login token and injects it into the global pull-secret.
- `mas-ecr` `ImageDigestMirrorSet that redirects all image pulls fromn icr.io and cp.icr.io to ECR
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
kind: Secret
apiVersion: v1
metadata:
name: aws
annotations:
argocd.argoproj.io/sync-wave: "00"
{{- if .Values.custom_labels }}
labels:
{{ .Values.custom_labels | toYaml | indent 4 }}
{{- end }}
stringData:
aws_access_key_id: {{ .Values.aws_access_key_id }}
aws_secret_access_key: {{ .Values.aws_secret_access_key }}
aws_default_region: {{ .Values.region_id }}
type: Opaque

Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
{{- if not (empty .Values.ecr_host) }}

{{- $_cli_image_digest := "sha256:1b88f88a1a719d006ea1f4b8dcfd1c2625fa7ecc529c3267e7b4b6afaa1c8da0" }}

---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: ecr-token-updater-role
annotations:
argocd.argoproj.io/sync-wave: "02"
{{- if .Values.custom_labels }}
labels:
{{ .Values.custom_labels | toYaml | indent 4 }}
{{- end }}
rules:
- apiGroups:
- ""
resources:
- secrets
verbs:
- get
- update
- patch

---
# Service account that is authorized to read k8s secrets (needed by the job)
kind: ServiceAccount
apiVersion: v1
metadata:
name: "ecr-token-updater-sa"
annotations:
argocd.argoproj.io/sync-wave: "02"
{{- if .Values.custom_labels }}
labels:
{{ .Values.custom_labels | toYaml | indent 4 }}
{{- end }}


---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: ecr-token-updater-rolebinding
annotations:
argocd.argoproj.io/sync-wave: "03"
{{- if .Values.custom_labels }}
labels:
{{ .Values.custom_labels | toYaml | indent 4 }}
{{- end }}
subjects:
- kind: ServiceAccount
name: ecr-token-updater-sa
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: ecr-token-updater-role


---
kind: CronJob
apiVersion: batch/v1
metadata:
name: "ecr-token-updater"
annotations:
argocd.argoproj.io/sync-wave: "05"
{{- if .Values.custom_labels }}
labels:
{{ .Values.custom_labels | toYaml | indent 4 }}
{{- end }}
spec:
schedule: '0 */11 * * *'
suspend: false
concurrencyPolicy: Forbid
jobTemplate:
spec:
template:
metadata:
{{- if .Values.custom_labels }}
labels:
{{ .Values.custom_labels | toYaml | indent 12 }}
{{- end }}
spec:
restartPolicy: OnFailure
serviceAccountName: "ecr-token-updater-sa"
containers:
- name: "ecr-token-updater"
image: {{ .Values.cli_image_repo | default "quay.io/ibmmas/cli" }}@{{ $_cli_image_digest }}
imagePullPolicy: IfNotPresent
env:
- name: REGION_ID
value: {{ .Values.region_id }}
- name: ECR_HOST
value: {{ .Values.ecr_host }}
- name: AWS_REGION
valueFrom:
secretKeyRef:
name: aws
key: aws_default_region
- name: AWS_ACCESS_KEY_ID
valueFrom:
secretKeyRef:
name: aws
key: aws_access_key_id
- name: AWS_SECRET_ACCESS_KEY
valueFrom:
secretKeyRef:
name: aws
key: aws_secret_access_key
command:
- /bin/sh
- -c
- |
set -euo pipefail

echo "- Get ECR Token"
ECR_TOKEN=$(aws ecr get-login-password --region ${REGION_ID})
ECR_AUTH="AWS:${ECR_TOKEN}"
ECR_AUTH_B64=$(echo "${ECR_AUTH}" | base64 -w0 )

echo "- Update .dockerconfigjson"
# Get the current pull-secret and update .dockerconfigjson with the ECR auth
UPDATED_DOCKERCONFIGJSON=$(
oc get secret pull-secret \
-n openshift-config \
-o json | \
jq -r '.data[".dockerconfigjson"]' | \
base64 -d | \
jq '.auths["'${ECR_HOST}'"] = {"auth": "'${ECR_AUTH_B64}'"}'
)

echo "- Update pull-secret"
oc set data secret/pull-secret \
-n openshift-config \
.dockerconfigjson="${UPDATED_DOCKERCONFIGJSON}"
{{- end }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
apiVersion: config.openshift.io/v1
kind: ImageDigestMirrorSet
metadata:
name: mas-ecr
spec:
imageDigestMirrors:
- mirrorSourcePolicy: NeverContactSource
mirrors:
- "{{ .Values.ecr_host }}/{{ .Values.repo_path_prefix }}"
source: icr.io
- mirrorSourcePolicy: NeverContactSource
mirrors:
- "{{ .Values.ecr_host }}/{{ .Values.repo_path_prefix }}"
source: cp.icr.io
{{- if .Values.additional_image_digest_sources }}
{{- range $i, $value := .Values.additional_image_digest_sources }}
- mirrors:
- "{{ $.Values.ecr_host }}/{{ $.Values.repo_path_prefix }}"
- "{{ $.Values.ecr_host }}/{{ $.Values.repo_path_prefix }}/cp"
source: {{ $value }}
{{- end }}
{{- end }}

Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{{- if .Values.additional_image_tag_sources }}
---
apiVersion: config.openshift.io/v1
kind: ImageTagMirrorSet
metadata:
name: mas-ecr-dev
spec:
imageTagMirrors:
{{- range $i, $value := .Values.additional_image_tag_sources }}
- mirrors:
- "{{ $.Values.ecr_host }}/{{ $.Values.repo_path_prefix }}"
- "{{ $.Values.ecr_host }}/{{ $.Values.repo_path_prefix }}/cp"
source: "{{ $value }}"
{{- end }}
{{- end }}
23 changes: 23 additions & 0 deletions cluster-applications/000-image-mirroring/values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
# Non-expiring IAM credentials for user with policy
# {
# Sid = "ECR"
# Effect = "Allow"
# Action = [
# "ecr:GetAuthorizationToken",
# "ecr:BatchGetImage",
# "ecr:GetDownloadUrlForLayer"
# ]
# Resource = [
# "*"
# ]
# }

# aws_access_key_id:
# aws_secret_access_key


# ecr_host: xxxxxx.dkr.ecr.us-gov-east-1.amazonaws.com
# repo_path_prefix: "250731"
# additional_image_digest_sources: ["somehost.com/repo"]
# additional_image_tag_sources: ["somehost.com/repo"]
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ spec:
spec:
containers:
- name: "mas-saas-job-cleaner"
image: quay.io/ibmmas/cli@{{ $_cli_image_digest }}
image: {{ .Values.cli_image_repo | default "quay.io/ibmmas/cli" }}@{{ $_cli_image_digest }}
imagePullPolicy: IfNotPresent
command:
- /bin/sh
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,4 @@ spec:
installPlanApproval: {{ .Values.redhat_cert_manager_install_plan | default "Automatic" | quote }}
name: openshift-cert-manager-operator
source: redhat-operators
sourceNamespace: openshift-marketplace


sourceNamespace: openshift-marketplace
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ spec:
spec:
containers:
- name: run
image: quay.io/ibmmas/cli@{{ $_cli_image_digest }}
image: {{ .Values.cli_image_repo | default "quay.io/ibmmas/cli" }}@{{ $_cli_image_digest }}
imagePullPolicy: IfNotPresent
resources:
limits:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,6 @@ metadata:
{{ .Values.custom_labels | toYaml | indent 4 }}
{{- end }}
spec:
installIBMCatalogSource: false
license:
accept: true
accept: true
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ spec:
spec:
containers:
- name: run
image: quay.io/ibmmas/cli@{{ $_cli_image_digest }}
image: {{ .Values.cli_image_repo | default "quay.io/ibmmas/cli" }}@{{ $_cli_image_digest }}
imagePullPolicy: IfNotPresent
resources:
limits:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ spec:
- name: run
# TODO: use a dedicated image with a smaller footprint for this sort of thing?
# Just using cli for now since it has all the deps we need to talk with AWS SM
image: quay.io/ibmmas/cli@{{ $_cli_image_digest }}
image: {{ .Values.cli_image_repo | default "quay.io/ibmmas/cli" }}@{{ $_cli_image_digest }}
imagePullPolicy: IfNotPresent
resources:
limits:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{{- if eq .Values.dns_provider "cis" }}

{{ $cis_apiservice_group_name := "acme.cis.ibm.com" }}
{{ $cis_webhook_image_repository := "quay.io/ibmmas/cert-manager-webhook-ibm-cis" }}
{{ $cis_webhook_image_repository := .Values.cis_webhook_image_repo | default "quay.io/ibmmas/cert-manager-webhook-ibm-cis" }}
{{ $cis_webhook_image_tag := "1.0.0" }}
{{ $cis_webhook_image_pullpolicy := "Always" }}
{{ $cis_webhook_service_type := "ClusterIP" }}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ spec:
- name: run
# TODO: use a dedicated image with a smaller footprint for this sort of thing?
# Just using cli for now since it has all the deps we need to talk with AWS SM
image: quay.io/ibmmas/cli@{{ $_cli_image_digest }}
image: {{ .Values.cli_image_repo | default "quay.io/ibmmas/cli" }}@{{ $_cli_image_digest }}
imagePullPolicy: IfNotPresent
resources:
limits:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ spec:
# Additionally, it writes the DB2 certificate to a persistent volume.
initContainers:
- name: update-agent-cr
image: quay.io/ibmmas/cli@{{ $_cli_image_digest }}
image: {{ .Values.cli_image_repo | default "quay.io/ibmmas/cli" }}@{{ $_cli_image_digest }}
imagePullPolicy: IfNotPresent
volumeMounts:
- name: instana-db2-jks
Expand Down
Loading