diff --git a/sxc/10.3/k8s-commerce-xc1/bizfx.yaml b/sxc/10.3/k8s-commerce-xc1/bizfx.yaml
new file mode 100644
index 0000000..40a6949
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/bizfx.yaml
@@ -0,0 +1,93 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: bizfx
+spec:
+ selector:
+ app: bizfx
+ ports:
+ - protocol: TCP
+ port: 80
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: bizfx
+ labels:
+ app: bizfx
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: bizfx
+ template:
+ metadata:
+ labels:
+ app: bizfx
+ spec:
+ nodeSelector:
+ kubernetes.io/os: windows
+ containers:
+ - name: sitecore-xc-bizfx
+ image: sitecore-xc-bizfx
+ ports:
+ - containerPort: 80
+ env:
+ - name: sitecore_xc_bizfx_default_language
+ valueFrom:
+ secretKeyRef:
+ name: commerce-bizfx
+ key: commerce-bizfx-language.txt
+ - name: sitecore_xc_bizfx_default_currency
+ valueFrom:
+ secretKeyRef:
+ name: commerce-bizfx
+ key: commerce-bizfx-currency.txt
+ - name: sitecore_xc_bizfx_default_shopname
+ valueFrom:
+ secretKeyRef:
+ name: commerce-bizfx
+ key: commerce-bizfx-shopname.txt
+ - name: sitecore_xc_bizfx_bizfx_url
+ value: https://$(bizfx-hostname)
+ - name: sitecore_xc_bizfx_authoring_url
+ value: https://$(engine-authoring-hostname)
+ - name: sitecore_xc_bizfx_identity_server_url
+ value: https://$(id-hostname)
+ livenessProbe:
+ httpGet:
+ path: /
+ port: 80
+ httpHeaders:
+ - name: X-Kubernetes-Probe
+ value: Liveness
+ timeoutSeconds: 300
+ periodSeconds: 30
+ failureThreshold: 3
+ startupProbe:
+ httpGet:
+ path: /
+ port: 80
+ httpHeaders:
+ - name: X-Kubernetes-Probe
+ value: Startup
+ timeoutSeconds: 300
+ periodSeconds: 30
+ failureThreshold: 10
+ volumeMounts:
+ - mountPath: C:\inetpub\logs
+ name: logs
+ subPath: bizfx
+ resources:
+ requests:
+ memory: 200Mi
+ cpu: 50m
+ limits:
+ memory: 1Gi
+ cpu: 200m
+ volumes:
+ - name: logs
+ persistentVolumeClaim:
+ claimName: logs
+ imagePullSecrets:
+ - name: sitecore-docker-registry
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/cd.yaml b/sxc/10.3/k8s-commerce-xc1/cd.yaml
new file mode 100644
index 0000000..24b55b1
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/cd.yaml
@@ -0,0 +1,246 @@
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+ name: cd-config-storage
+spec:
+ accessModes:
+ - ReadWriteMany
+ storageClassName: azurefile
+ resources:
+ requests:
+ storage: 1Gi
+---
+apiVersion: v1
+kind: Service
+metadata:
+ name: cd
+spec:
+ selector:
+ app: cd
+ ports:
+ - protocol: TCP
+ port: 80
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: cd
+ labels:
+ app: cd
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: cd
+ template:
+ metadata:
+ labels:
+ app: cd
+ spec:
+ nodeSelector:
+ kubernetes.io/os: windows
+ initContainers:
+ - name: wait-xdbcollection
+ image: pwsh-initContainer
+ command: ["pwsh", "-Command", "do { Start-Sleep -Seconds 3 } until ($(try {(iwr http://xdbcollection/healthz/ready).StatusCode -eq 200} catch { $false }));"]
+ - name: wait-xdbautomation
+ image: pwsh-initContainer
+ command: ["pwsh", "-Command", "do { Start-Sleep -Seconds 3 } until ($(try {(iwr http://xdbautomation/healthz/ready).StatusCode -eq 200} catch { $false }));"]
+ - name: wait-xdbautomationrpt
+ image: pwsh-initContainer
+ command: ["pwsh", "-Command", "do { Start-Sleep -Seconds 3 } until ($(try {(iwr http://xdbautomationrpt/healthz/ready).StatusCode -eq 200} catch { $false }));"]
+ - name: wait-xdbrefdata
+ image: pwsh-initContainer
+ command: ["pwsh", "-Command", "do { Start-Sleep -Seconds 3 } until ($(try {(iwr http://xdbrefdata/healthz/ready).StatusCode -eq 200} catch { $false }));"]
+ containers:
+ - name: sitecore-xc1-cd
+ image: sitecore-xc1-cd
+ ports:
+ - containerPort: 80
+ env:
+ - name: Sitecore_InstanceName
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.name
+ - name: Database_Server
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseservername.txt
+ - name: Core_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-core-database-username.txt
+ - name: Core_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-core-database-password.txt
+ - name: Web_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-web-database-username.txt
+ - name: Web_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-web-database-password.txt
+ - name: Forms_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-forms-database-username.txt
+ - name: Forms_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-forms-database-password.txt
+ - name: Exm_Master_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-exm-master-database-username.txt
+ - name: Exm_Master_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-exm-master-database-password.txt
+ - name: Messaging_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-messaging-database-username.txt
+ - name: Messaging_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-messaging-database-password.txt
+ - name: Sitecore_License
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-license
+ key: sitecore-license.txt
+ - name: Sql_Database_Prefix
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseprefix.txt
+ - name: LOG_LEVEL_VALUE
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-log-level
+ key: sitecore-log-level-value.txt
+ - name: Sitecore_xc_Client_Secret_Hash
+ valueFrom:
+ secretKeyRef:
+ name: commerce-connect-client
+ key: commerce-connect-clientsecret.txt
+ - name: Sitecore_ConnectionStrings_Security
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Core;User ID=$(Core_Database_Username);Password=$(Core_Database_Password);
+ - name: Sitecore_ConnectionStrings_Web
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Web;User ID=$(Web_Database_Username);Password=$(Web_Database_Password);
+ - name: Sitecore_ConnectionStrings_Messaging
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Messaging;User ID=$(Messaging_Database_Username);Password=$(Messaging_Database_Password);
+ - name: Sitecore_ConnectionStrings_ExperienceForms
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).ExperienceForms;User ID=$(Forms_Database_Username);Password=$(Forms_Database_Password);
+ - name: Sitecore_ConnectionStrings_Exm.Master
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Exm.master;User ID=$(Exm_Master_Database_Username);Password=$(Exm_Master_Database_Password);
+ - name: Sitecore_ConnectionStrings_Solr.Search
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-solr
+ key: sitecore-solr-connection-string.txt
+ - name: Sitecore_ConnectionStrings_XConnect.Collection
+ value: http://xdbcollection
+ - name: Sitecore_ConnectionStrings_Xdb.MarketingAutomation.Operations.Client
+ value: http://xdbautomation
+ - name: Sitecore_ConnectionStrings_Xdb.MarketingAutomation.Reporting.Client
+ value: http://xdbautomationrpt
+ - name: Sitecore_ConnectionStrings_Xdb.ReferenceData.Client
+ value: http://xdbrefdata
+ - name: Sitecore_ConnectionStrings_Redis.Sessions
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-redis
+ key: sitecore-redis-connection-string.txt
+ - name: Sitecore_Analytics_Forwarded_Request_Http_Header
+ value: X-Forwarded-For
+ - name: SOLR_CORE_PREFIX_NAME
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-solr
+ key: sitecore-solr-core-prefix-name.txt
+ - name: MEDIA_REQUEST_PROTECTION_SHARED_SECRET
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-protect-media-requests
+ key: sitecore-media-request-protection-shared-secret.txt
+ - name: Sitecore_Identity_Server_Authority
+ value: https://$(id-hostname)
+ - name: Sitecore_Identity_Server_InternalAuthority
+ value: http://id
+ - name: Sitecore_xc_Minions_Url
+ value: http://engine-minions:5000/commerceops/
+ - name: Sitecore_xc_Ops_Url
+ value: http://engine-authoring:5000/commerceops/
+ - name: Sitecore_xc_Shops_Url
+ value: http://engine-shops:5000/api/
+ - name: Sitecore_xc_ConnectionStrings_Redis
+ valueFrom:
+ secretKeyRef:
+ name: commerce-redis
+ key: commerce-connect-redis-connection-string.txt
+ livenessProbe:
+ httpGet:
+ path: /healthz/live
+ port: 80
+ httpHeaders:
+ - name: X-Kubernetes-Probe
+ value: Liveness
+ timeoutSeconds: 300
+ periodSeconds: 30
+ failureThreshold: 3
+ startupProbe:
+ httpGet:
+ path: /healthz/ready
+ port: 80
+ httpHeaders:
+ - name: X-Kubernetes-Probe
+ value: Startup
+ timeoutSeconds: 300
+ periodSeconds: 30
+ failureThreshold: 10
+ volumeMounts:
+ - mountPath: C:\inetpub\wwwroot\App_Data\Submit Queue
+ name: submit-queue
+ - mountPath: C:\inetpub\wwwroot\App_Data\logs
+ name: logs
+ subPath: cd
+ - mountPath: C:\inetpub\wwwroot\App_Data\DeviceDetection
+ name: device-detection
+ - mountPath: "/inetpub/wwwroot/App_Config/Security-Shared"
+ name: config-storage-volume
+ resources:
+ requests:
+ memory: 2Gi
+ cpu: 2000m
+ limits:
+ memory: 4Gi
+ cpu: 8000m
+ volumes:
+ - name: submit-queue
+ persistentVolumeClaim:
+ claimName: submit-queue
+ - name: logs
+ persistentVolumeClaim:
+ claimName: logs
+ - name: device-detection
+ persistentVolumeClaim:
+ claimName: device-detection
+ - name: config-storage-volume
+ persistentVolumeClaim:
+ claimName: cd-config-storage
+ imagePullSecrets:
+ - name: sitecore-docker-registry
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/cm.yaml b/sxc/10.3/k8s-commerce-xc1/cm.yaml
new file mode 100644
index 0000000..bfef1d3
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/cm.yaml
@@ -0,0 +1,324 @@
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+ name: cm-config-storage
+spec:
+ accessModes:
+ - ReadWriteMany
+ storageClassName: azurefile
+ resources:
+ requests:
+ storage: 1Gi
+---
+apiVersion: v1
+kind: Service
+metadata:
+ name: cm
+spec:
+ selector:
+ app: cm
+ ports:
+ - protocol: TCP
+ port: 80
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: cm
+ labels:
+ app: cm
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: cm
+ template:
+ metadata:
+ labels:
+ app: cm
+ spec:
+ nodeSelector:
+ kubernetes.io/os: windows
+ initContainers:
+ - name: wait-xdbcollection
+ image: pwsh-initContainer
+ command: ["pwsh", "-Command", "do { Start-Sleep -Seconds 3 } until ($(try {(iwr http://xdbcollection/healthz/ready).StatusCode -eq 200} catch { $false }));"]
+ - name: wait-xdbsearch
+ image: pwsh-initContainer
+ command: ["pwsh", "-Command", "do { Start-Sleep -Seconds 3 } until ($(try {(iwr http://xdbsearch/healthz/ready).StatusCode -eq 200} catch { $false }));"]
+ - name: wait-cortexreporting
+ image: pwsh-initContainer
+ command: ["pwsh", "-Command", "do { Start-Sleep -Seconds 3 } until ($(try {(iwr http://cortexreporting/healthz/ready).StatusCode -eq 200} catch { $false }));"]
+ - name: wait-cortexprocessing
+ image: pwsh-initContainer
+ command: ["pwsh", "-Command", "do { Start-Sleep -Seconds 3 } until ($(try {(iwr http://cortexprocessing/healthz/ready).StatusCode -eq 200} catch { $false }));"]
+ - name: wait-xdbautomation
+ image: pwsh-initContainer
+ command: ["pwsh", "-Command", "do { Start-Sleep -Seconds 3 } until ($(try {(iwr http://xdbautomation/healthz/ready).StatusCode -eq 200} catch { $false }));"]
+ - name: wait-xdbautomationrpt
+ image: pwsh-initContainer
+ command: ["pwsh", "-Command", "do { Start-Sleep -Seconds 3 } until ($(try {(iwr http://xdbautomationrpt/healthz/ready).StatusCode -eq 200} catch { $false }));"]
+ - name: wait-xdbrefdata
+ image: pwsh-initContainer
+ command: ["pwsh", "-Command", "do { Start-Sleep -Seconds 3 } until ($(try {(iwr http://xdbrefdata/healthz/ready).StatusCode -eq 200} catch { $false }));"]
+ containers:
+ - name: sitecore-xc1-cm
+ image: sitecore-xc1-cm
+ ports:
+ - containerPort: 80
+ env:
+ - name: Sitecore_InstanceName
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.name
+ - name: Database_Server
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseservername.txt
+ - name: Master_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-master-database-username.txt
+ - name: Master_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-master-database-password.txt
+ - name: Core_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-core-database-username.txt
+ - name: Core_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-core-database-password.txt
+ - name: Web_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-web-database-username.txt
+ - name: Web_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-web-database-password.txt
+ - name: Forms_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-forms-database-username.txt
+ - name: Forms_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-forms-database-password.txt
+ - name: Exm_Master_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-exm-master-database-username.txt
+ - name: Exm_Master_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-exm-master-database-password.txt
+ - name: Messaging_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-messaging-database-username.txt
+ - name: Messaging_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-messaging-database-password.txt
+ - name: Reporting_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-reporting-database-username.txt
+ - name: Reporting_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-reporting-database-password.txt
+ - name: Reference_Data_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-reference-data-database-username.txt
+ - name: Reference_Data_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-reference-data-database-password.txt
+ - name: Sitecore_ConnectionStrings_Sitecoreidentity.secret
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-identity
+ key: sitecore-identitysecret.txt
+ - name: Sitecore_AppSettings_Telerik.AsyncUpload.ConfigurationEncryptionKey
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-telerik
+ key: sitecore-telerikencryptionkey.txt
+ - name: Sitecore_AppSettings_Telerik.Upload.ConfigurationHashKey
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-telerik
+ key: sitecore-telerikencryptionkey.txt
+ - name: Sitecore_AppSettings_Telerik.Web.UI.DialogParametersEncryptionKey
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-telerik
+ key: sitecore-telerikencryptionkey.txt
+ - name: Sitecore_ConnectionStrings_Reporting.ApiKey
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-reporting
+ key: sitecore-reportingapikey.txt
+ - name: Sitecore_License
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-license
+ key: sitecore-license.txt
+ - name: LOG_LEVEL_VALUE
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-log-level
+ key: sitecore-log-level-value.txt
+ - name: Sitecore_xc_Client_Secret_Hash
+ valueFrom:
+ secretKeyRef:
+ name: commerce-connect-client
+ key: commerce-connect-clientsecret.txt
+ - name: Sql_Database_Prefix
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseprefix.txt
+ - name: Sitecore_ConnectionStrings_Core
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Core;User ID=$(Core_Database_Username);Password=$(Core_Database_Password);
+ - name: Sitecore_ConnectionStrings_Security
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Core;User ID=$(Core_Database_Username);Password=$(Core_Database_Password);
+ - name: Sitecore_ConnectionStrings_Master
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Master;User ID=$(Master_Database_Username);Password=$(Master_Database_Password);
+ - name: Sitecore_ConnectionStrings_Web
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Web;User ID=$(Web_Database_Username);Password=$(Web_Database_Password);
+ - name: Sitecore_ConnectionStrings_Messaging
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Messaging;User ID=$(Messaging_Database_Username);Password=$(Messaging_Database_Password);
+ - name: Sitecore_ConnectionStrings_Xdb.Referencedata
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Referencedata;User ID=$(Reference_Data_Database_Username);Password=$(Reference_Data_Database_Password);
+ - name: Sitecore_ConnectionStrings_ExperienceForms
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).ExperienceForms;User ID=$(Forms_Database_Username);Password=$(Forms_Database_Password);
+ - name: Sitecore_ConnectionStrings_Exm.Master
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Exm.master;User ID=$(Exm_Master_Database_Username);Password=$(Exm_Master_Database_Password);
+ - name: Sitecore_ConnectionStrings_Reporting
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Reporting;User ID=$(Reporting_Database_Username);Password=$(Reporting_Database_Password);
+ - name: Sitecore_ConnectionStrings_Sitecore.Reporting.Client
+ value: http://cortexreporting
+ - name: Sitecore_ConnectionStrings_Cortex.Processing.Engine
+ value: http://cortexprocessing
+ - name: Sitecore_ConnectionStrings_Solr.Search
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-solr
+ key: sitecore-solr-connection-string.txt
+ - name: Sitecore_ConnectionStrings_XConnect.Collection
+ value: http://xdbcollection
+ - name: Sitecore_ConnectionStrings_XConnect.Search
+ value: http://xdbsearch
+ - name: Sitecore_ConnectionStrings_Xdb.MarketingAutomation.Operations.Client
+ value: http://xdbautomation
+ - name: Sitecore_ConnectionStrings_Xdb.MarketingAutomation.Reporting.Client
+ value: http://xdbautomationrpt
+ - name: Sitecore_ConnectionStrings_Xdb.ReferenceData.Client
+ value: http://xdbrefdata
+ - name: Sitecore_Processing_Service_Url
+ value: http://prc
+ - name: Sitecore_Processing_Service_Require_Https
+ value: 'false'
+ - name: Sitecore_GraphQL_Enabled
+ value: "false"
+ - name: Sitecore_GraphQL_ExposePlayground
+ value: "false"
+ - name: Sitecore_GraphQL_UploadMediaOptions_EncryptionKey
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-graphql
+ key: sitecore-graphql-uploadmedia_encryptionkey.txt
+ - name: Sitecore_Identity_Server_Authority
+ value: https://$(id-hostname)
+ - name: Sitecore_Identity_Server_CallbackAuthority
+ value: https://$(cm-hostname)
+ - name: Sitecore_Identity_Server_InternalAuthority
+ value: http://id
+ - name: Sitecore_Identity_Server_Require_Https
+ value: "false"
+ - name: SOLR_CORE_PREFIX_NAME
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-solr
+ key: sitecore-solr-core-prefix-name.txt
+ - name: MEDIA_REQUEST_PROTECTION_SHARED_SECRET
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-protect-media-requests
+ key: sitecore-media-request-protection-shared-secret.txt
+ - name: Sitecore_xc_Minions_Url
+ value: http://engine-minions:5000/commerceops/
+ - name: Sitecore_xc_Ops_Url
+ value: http://engine-authoring:5000/commerceops/
+ - name: Sitecore_xc_Shops_Url
+ value: http://engine-authoring:5000/api/
+ - name: Sitecore_xc_ConnectionStrings_Redis
+ valueFrom:
+ secretKeyRef:
+ name: commerce-redis
+ key: commerce-connect-redis-connection-string.txt
+ livenessProbe:
+ httpGet:
+ path: /healthz/live
+ port: 80
+ httpHeaders:
+ - name: X-Kubernetes-Probe
+ value: Liveness
+ timeoutSeconds: 300
+ periodSeconds: 30
+ failureThreshold: 3
+ startupProbe:
+ httpGet:
+ path: /healthz/ready
+ port: 80
+ httpHeaders:
+ - name: X-Kubernetes-Probe
+ value: Startup
+ timeoutSeconds: 300
+ periodSeconds: 30
+ failureThreshold: 10
+ resources:
+ requests:
+ memory: 2Gi
+ cpu: 1800m
+ limits:
+ memory: 4Gi
+ cpu: 6000m
+ volumeMounts:
+ - mountPath: C:\inetpub\wwwroot\App_Data\logs
+ name: logs
+ subPath: cm
+ - mountPath: "/inetpub/wwwroot/App_Config/Security-Shared"
+ name: config-storage-volume
+ volumes:
+ - name: logs
+ persistentVolumeClaim:
+ claimName: logs
+ - name: config-storage-volume
+ persistentVolumeClaim:
+ claimName: cm-config-storage
+ imagePullSecrets:
+ - name: sitecore-docker-registry
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/configmaps/bizfx-hostname b/sxc/10.3/k8s-commerce-xc1/configmaps/bizfx-hostname
new file mode 100644
index 0000000..921b34c
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/configmaps/bizfx-hostname
@@ -0,0 +1 @@
+bizfx.globalhost
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/configmaps/cd-hostname b/sxc/10.3/k8s-commerce-xc1/configmaps/cd-hostname
new file mode 100644
index 0000000..d6c7cb7
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/configmaps/cd-hostname
@@ -0,0 +1 @@
+cd.globalhost
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/configmaps/cm-hostname b/sxc/10.3/k8s-commerce-xc1/configmaps/cm-hostname
new file mode 100644
index 0000000..3d05b3f
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/configmaps/cm-hostname
@@ -0,0 +1 @@
+cm.globalhost
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/configmaps/engine-authoring-hostname b/sxc/10.3/k8s-commerce-xc1/configmaps/engine-authoring-hostname
new file mode 100644
index 0000000..53eb61f
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/configmaps/engine-authoring-hostname
@@ -0,0 +1 @@
+authoring.globalhost
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/configmaps/engine-minions-hostname b/sxc/10.3/k8s-commerce-xc1/configmaps/engine-minions-hostname
new file mode 100644
index 0000000..6201e8c
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/configmaps/engine-minions-hostname
@@ -0,0 +1 @@
+minions.globalhost
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/configmaps/engine-shops-hostname b/sxc/10.3/k8s-commerce-xc1/configmaps/engine-shops-hostname
new file mode 100644
index 0000000..7e3440a
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/configmaps/engine-shops-hostname
@@ -0,0 +1 @@
+shops.globalhost
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/configmaps/id-hostname b/sxc/10.3/k8s-commerce-xc1/configmaps/id-hostname
new file mode 100644
index 0000000..1e750d1
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/configmaps/id-hostname
@@ -0,0 +1 @@
+id.globalhost
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/configmaps/kustomization.yaml b/sxc/10.3/k8s-commerce-xc1/configmaps/kustomization.yaml
new file mode 100644
index 0000000..b98f5b0
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/configmaps/kustomization.yaml
@@ -0,0 +1,67 @@
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+
+generatorOptions:
+ disableNameSuffixHash: true
+
+configMapGenerator:
+- name: sitecore-hostnames
+ files:
+ - cd-hostname
+ - cm-hostname
+ - id-hostname
+ - bizfx-hostname
+ - engine-authoring-hostname
+ - engine-minions-hostname
+ - engine-shops-hostname
+
+vars:
+- name: cd-hostname
+ objref:
+ kind: ConfigMap
+ name: sitecore-hostnames
+ apiVersion: v1
+ fieldref:
+ fieldpath: data.cd-hostname
+- name: cm-hostname
+ objref:
+ kind: ConfigMap
+ name: sitecore-hostnames
+ apiVersion: v1
+ fieldref:
+ fieldpath: data.cm-hostname
+- name: id-hostname
+ objref:
+ kind: ConfigMap
+ name: sitecore-hostnames
+ apiVersion: v1
+ fieldref:
+ fieldpath: data.id-hostname
+- name: bizfx-hostname
+ objref:
+ kind: ConfigMap
+ name: sitecore-hostnames
+ apiVersion: v1
+ fieldref:
+ fieldpath: data.bizfx-hostname
+- name: engine-authoring-hostname
+ objref:
+ kind: ConfigMap
+ name: sitecore-hostnames
+ apiVersion: v1
+ fieldref:
+ fieldpath: data.engine-authoring-hostname
+- name: engine-minions-hostname
+ objref:
+ kind: ConfigMap
+ name: sitecore-hostnames
+ apiVersion: v1
+ fieldref:
+ fieldpath: data.engine-minions-hostname
+- name: engine-shops-hostname
+ objref:
+ kind: ConfigMap
+ name: sitecore-hostnames
+ apiVersion: v1
+ fieldref:
+ fieldpath: data.engine-shops-hostname
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/cortexprocessing.yaml b/sxc/10.3/k8s-commerce-xc1/cortexprocessing.yaml
new file mode 100644
index 0000000..a68bc3b
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/cortexprocessing.yaml
@@ -0,0 +1,111 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: cortexprocessing
+spec:
+ selector:
+ app: cortexprocessing
+ ports:
+ - protocol: TCP
+ port: 80
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: cortexprocessing
+ labels:
+ app: cortexprocessing
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: cortexprocessing
+ template:
+ metadata:
+ labels:
+ app: cortexprocessing
+ spec:
+ nodeSelector:
+ kubernetes.io/os: windows
+ containers:
+ - name: sitecore-xp1-cortexprocessing
+ image: sitecore-xp1-cortexprocessing
+ ports:
+ - containerPort: 80
+ env:
+ - name: Database_Server
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseservername.txt
+ - name: Processing_Engine_Tasks_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-processing-engine-tasks-database-username.txt
+ - name: Processing_Engine_Tasks_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-processing-engine-tasks-database-password.txt
+ - name: Processing_Engine_Storage_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-processing-engine-storage-database-username.txt
+ - name: Processing_Engine_Storage_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-processing-engine-storage-database-password.txt
+ - name: Sitecore_License
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-license
+ key: sitecore-license.txt
+ - name: Sql_Database_Prefix
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseprefix.txt
+ - name: Sitecore_ConnectionStrings_Processing.Engine.Storage
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Processing.Engine.Storage;User ID=$(Processing_Engine_Storage_Database_Username);Password=$(Processing_Engine_Storage_Database_Password);
+ - name: Sitecore_ConnectionStrings_Processing.Engine.Tasks
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Processing.Engine.Tasks;User ID=$(Processing_Engine_Tasks_Database_Username);Password=$(Processing_Engine_Tasks_Database_Password);
+ livenessProbe:
+ httpGet:
+ path: /healthz/live
+ port: 80
+ httpHeaders:
+ - name: X-Kubernetes-Probe
+ value: Liveness
+ timeoutSeconds: 300
+ periodSeconds: 30
+ failureThreshold: 3
+ startupProbe:
+ httpGet:
+ path: /healthz/ready
+ port: 80
+ httpHeaders:
+ - name: X-Kubernetes-Probe
+ value: Startup
+ timeoutSeconds: 300
+ periodSeconds: 30
+ failureThreshold: 10
+ volumeMounts:
+ - mountPath: C:\inetpub\wwwroot\App_Data\logs
+ name: logs
+ subPath: cortexprocessing
+ resources:
+ requests:
+ memory: 500Mi
+ cpu: 100m
+ limits:
+ memory: 1Gi
+ cpu: 300m
+ volumes:
+ - name: logs
+ persistentVolumeClaim:
+ claimName: logs
+ imagePullSecrets:
+ - name: sitecore-docker-registry
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/cortexprocessingworker.yaml b/sxc/10.3/k8s-commerce-xc1/cortexprocessingworker.yaml
new file mode 100644
index 0000000..ead01d8
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/cortexprocessingworker.yaml
@@ -0,0 +1,134 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: cortexprocessingworker
+spec:
+ selector:
+ app: cortexprocessingworker
+ ports:
+ - protocol: TCP
+ port: 8080
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: cortexprocessingworker
+ labels:
+ app: cortexprocessingworker
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: cortexprocessingworker
+ template:
+ metadata:
+ labels:
+ app: cortexprocessingworker
+ spec:
+ nodeSelector:
+ kubernetes.io/os: windows
+ initContainers:
+ - name: wait-xdbcollection
+ image: pwsh-initContainer
+ command: ["pwsh", "-Command", "do { Start-Sleep -Seconds 3 } until ($(try {(iwr http://xdbcollection/healthz/ready).StatusCode -eq 200} catch { $false }));"]
+ - name: wait-xdbsearch
+ image: pwsh-initContainer
+ command: ["pwsh", "-Command", "do { Start-Sleep -Seconds 3 } until ($(try {(iwr http://xdbsearch/healthz/ready).StatusCode -eq 200} catch { $false }));"]
+ containers:
+ - name: sitecore-xp1-cortexprocessingworker
+ image: sitecore-xp1-cortexprocessingworker
+ env:
+ - name: Database_Server
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseservername.txt
+ - name: Processing_Engine_Tasks_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-processing-engine-tasks-database-username.txt
+ - name: Processing_Engine_Tasks_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-processing-engine-tasks-database-password.txt
+ - name: Processing_Engine_Storage_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-processing-engine-storage-database-username.txt
+ - name: Processing_Engine_Storage_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-processing-engine-storage-database-password.txt
+ - name: Reporting_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-reporting-database-username.txt
+ - name: Reporting_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-reporting-database-password.txt
+ - name: Sitecore_License
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-license
+ key: sitecore-license.txt
+ - name: Sql_Database_Prefix
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseprefix.txt
+ - name: Sitecore_ConnectionStrings_Processing.Engine.Storage
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Processing.Engine.Storage;User ID=$(Processing_Engine_Storage_Database_Username);Password=$(Processing_Engine_Storage_Database_Password);
+ - name: Sitecore_ConnectionStrings_Processing.Engine.Tasks
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Processing.Engine.Tasks;User ID=$(Processing_Engine_Tasks_Database_Username);Password=$(Processing_Engine_Tasks_Database_Password);
+ - name: Sitecore_ConnectionStrings_Processing.Webapi.Blob
+ value: http://cortexprocessing
+ - name: Sitecore_ConnectionStrings_Processing.Webapi.Table
+ value: http://cortexprocessing
+ - name: Sitecore_ConnectionStrings_Xconnect.Collection
+ value: http://xdbcollection
+ - name: Sitecore_ConnectionStrings_Xconnect.Configuration
+ value: http://xdbcollection
+ - name: Sitecore_ConnectionStrings_XConnect.Search
+ value: http://xdbsearch
+ - name: Sitecore_ConnectionStrings_Reporting
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Reporting;User ID=$(Reporting_Database_Username);Password=$(Reporting_Database_Password);
+ livenessProbe:
+ exec:
+ command:
+ - curl
+ - http://localhost:8080/healthz/live
+ timeoutSeconds: 300
+ periodSeconds: 30
+ failureThreshold: 3
+ startupProbe:
+ exec:
+ command:
+ - curl
+ - http://localhost:8080/healthz/ready
+ timeoutSeconds: 300
+ periodSeconds: 30
+ failureThreshold: 10
+ volumeMounts:
+ - mountPath: C:\service\App_Data\Logs
+ name: logs
+ subPath: cortexprocessingworker
+ resources:
+ requests:
+ memory: 200Mi
+ cpu: 100m
+ limits:
+ memory: 1Gi
+ cpu: 300m
+ volumes:
+ - name: logs
+ persistentVolumeClaim:
+ claimName: logs
+ imagePullSecrets:
+ - name: sitecore-docker-registry
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/cortexreporting.yaml b/sxc/10.3/k8s-commerce-xc1/cortexreporting.yaml
new file mode 100644
index 0000000..83de04d
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/cortexreporting.yaml
@@ -0,0 +1,99 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: cortexreporting
+spec:
+ selector:
+ app: cortexreporting
+ ports:
+ - protocol: TCP
+ port: 80
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: cortexreporting
+ labels:
+ app: cortexreporting
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: cortexreporting
+ template:
+ metadata:
+ labels:
+ app: cortexreporting
+ spec:
+ nodeSelector:
+ kubernetes.io/os: windows
+ containers:
+ - name: sitecore-xp1-cortexreporting
+ image: sitecore-xp1-cortexreporting
+ ports:
+ - containerPort: 80
+ env:
+ - name: Database_Server
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseservername.txt
+ - name: Reporting_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-reporting-database-username.txt
+ - name: Reporting_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-reporting-database-password.txt
+ - name: Sitecore_License
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-license
+ key: sitecore-license.txt
+ - name: Sql_Database_Prefix
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseprefix.txt
+ - name: Sitecore_ConnectionStrings_Reporting
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Reporting;User ID=$(Reporting_Database_Username);Password=$(Reporting_Database_Password);
+ livenessProbe:
+ httpGet:
+ path: /healthz/live
+ port: 80
+ httpHeaders:
+ - name: X-Kubernetes-Probe
+ value: Liveness
+ timeoutSeconds: 300
+ periodSeconds: 30
+ failureThreshold: 3
+ startupProbe:
+ httpGet:
+ path: /healthz/ready
+ port: 80
+ httpHeaders:
+ - name: X-Kubernetes-Probe
+ value: Startup
+ timeoutSeconds: 300
+ periodSeconds: 30
+ failureThreshold: 10
+ volumeMounts:
+ - mountPath: C:\inetpub\wwwroot\App_Data\logs
+ name: logs
+ subPath: cortexreporting
+ resources:
+ requests:
+ memory: 500Mi
+ cpu: 100m
+ limits:
+ memory: 1Gi
+ cpu: 300m
+ volumes:
+ - name: logs
+ persistentVolumeClaim:
+ claimName: logs
+ imagePullSecrets:
+ - name: sitecore-docker-registry
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/engine-authoring.yaml b/sxc/10.3/k8s-commerce-xc1/engine-authoring.yaml
new file mode 100644
index 0000000..063c9c6
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/engine-authoring.yaml
@@ -0,0 +1,227 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: engine-authoring
+spec:
+ selector:
+ app: engine-authoring
+ ports:
+ - protocol: TCP
+ port: 5000
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: engine-authoring
+ labels:
+ app: engine-authoring
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: engine-authoring
+ template:
+ metadata:
+ labels:
+ app: engine-authoring
+ spec:
+ nodeSelector:
+ kubernetes.io/os: windows
+ containers:
+ - name: sitecore-xc-engine
+ image: sitecore-xc-engine
+ ports:
+ - containerPort: 5000
+ env:
+ - name: Database_Server
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseservername.txt
+ - name: SOLR_CORE_PREFIX_NAME
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-solr
+ key: sitecore-solr-core-prefix-name.txt
+ - name: COMMERCEENGINE_AppSettings__DeploymentId
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.name
+ - name: COMMERCEENGINE_CommerceConnector__ClientId
+ valueFrom:
+ secretKeyRef:
+ name: commerce-connect-client
+ key: commerce-connect-clientid.txt
+ - name: COMMERCEENGINE_GlobalDatabaseUserName
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseusername.txt
+ - name: COMMERCEENGINE_GlobalDatabasePassword
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databasepassword.txt
+ - name: COMMERCEENGINE_SharedDatabaseUserName
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseusername.txt
+ - name: COMMERCEENGINE_SharedDatabasePassword
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databasepassword.txt
+ - name: COMMERCEENGINE_SitecorePassword
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-admin
+ key: sitecore-adminpassword.txt
+ - name: COMMERCEENGINE_BraintreeEnvironment
+ valueFrom:
+ secretKeyRef:
+ name: commerce-braintree
+ key: commerce-engine-braintreeenvironment.txt
+ - name: COMMERCEENGINE_BraintreeMerchantId
+ valueFrom:
+ secretKeyRef:
+ name: commerce-braintree
+ key: commerce-engine-braintreemerchantid.txt
+ - name: COMMERCEENGINE_BraintreePublicKey
+ valueFrom:
+ secretKeyRef:
+ name: commerce-braintree
+ key: commerce-engine-braintreepublickey.txt
+ - name: COMMERCEENGINE_BraintreePrivateKey
+ valueFrom:
+ secretKeyRef:
+ name: commerce-braintree
+ key: commerce-engine-braintreeprivatekey.txt
+ - name: COMMERCEENGINE_SolrUrl
+ valueFrom:
+ secretKeyRef:
+ name: commerce-solr
+ key: commerce-solr-connection-string.txt
+ - name: SOLR_COMMERCE_PREFIX_NAME
+ valueFrom:
+ secretKeyRef:
+ name: commerce-solr
+ key: commerce-solr-prefix-name.txt
+ - name: COMMERCEENGINE_AppSettings__EnvironmentName
+ value: HabitatAuthoring
+ - name: COMMERCEENGINE_AppSettings__SitecoreIdentityServerUrl
+ value: https://$(id-hostname)
+ - name: COMMERCEENGINE_AppSettings__InternalSitecoreIdentityServerUrl
+ value: http://id
+ - name: COMMERCEENGINE_AppSettings__AllowedOrigins
+ value: https://$(bizfx-hostname)|https://$(cm-hostname)|https://$(cd-hostname)
+ - name: COMMERCEENGINE_AppSettings__AntiForgeryEnabled
+ value: "false"
+ - name: COMMERCEENGINE_AppSettings__UseHttpsInKestrel
+ value: "false"
+ - name: COMMERCEENGINE_Caching__Redis__Options__Configuration
+ valueFrom:
+ secretKeyRef:
+ name: commerce-redis
+ key: commerce-redis-connection-string.txt
+ - name: COMMERCEENGINE_Caching__Redis__Options__InstanceName
+ value: Redis
+ - name: COMMERCEENGINE_GlobalDatabaseName
+ value: SitecoreCommerce_Global
+ - name: COMMERCEENGINE_GlobalDatabaseServer
+ value: $(Database_Server)
+ - name: COMMERCEENGINE_GlobalTrustedConnection
+ value: "false"
+ - name: COMMERCEENGINE_SharedDatabaseName
+ value: SitecoreCommerce_SharedEnvironments
+ - name: COMMERCEENGINE_SharedArchiveDatabaseName
+ value: SitecoreCommerce_ArchiveSharedEnvironments
+ - name: COMMERCEENGINE_SharedDatabaseServer
+ value: $(Database_Server)
+ - name: COMMERCEENGINE_SharedTrustedConnection
+ value: "false"
+ - name: COMMERCEENGINE_SitecoreHost
+ value: $(CM_SERVICE_HOST)
+ - name: COMMERCEENGINE_SitecoreDatabase
+ value: master
+ - name: COMMERCEENGINE_SitecoreUsername
+ value: admin
+ - name: COMMERCEENGINE_SitecoreDomain
+ value: sitecore
+ - name: COMMERCEENGINE_SitecoreProtocol
+ value: http
+ - name: COMMERCEENGINE_SitecoreAllowAnonymousUser
+ value: "true"
+ - name: COMMERCEENGINE_SitecoreExternalProtocol
+ value: https
+ - name: COMMERCEENGINE_SitecoreExternalHost
+ value: $(cm-hostname)
+ - name: COMMERCEENGINE_IsSolrCloud
+ value: "true"
+ - name: COMMERCEENGINE_StorefrontIndexPrefix_web_index
+ value: $(SOLR_CORE_PREFIX_NAME)_web_index
+ - name: COMMERCEENGINE_StorefrontIndexPrefix_master_index
+ value: $(SOLR_CORE_PREFIX_NAME)_master_index
+ - name: COMMERCEENGINE_SearchIndexPrefixOrdersScope
+ value: $(SOLR_COMMERCE_PREFIX_NAME)_OrdersScope
+ - name: COMMERCEENGINE_SearchIndexPrefixOrdersScope-Rebuild
+ value: $(SOLR_COMMERCE_PREFIX_NAME)_OrdersScope-Rebuild
+ - name: COMMERCEENGINE_SearchIndexPrefixCustomersScope
+ value: $(SOLR_COMMERCE_PREFIX_NAME)_CustomersScope
+ - name: COMMERCEENGINE_SearchIndexPrefixCustomersScope-Rebuild
+ value: $(SOLR_COMMERCE_PREFIX_NAME)_CustomersScope-Rebuild
+ - name: COMMERCEENGINE_SearchIndexPrefixCatalogItemsScope
+ value: $(SOLR_COMMERCE_PREFIX_NAME)_CatalogItemsScope
+ - name: COMMERCEENGINE_SearchIndexPrefixCatalogItemsScope-Rebuild
+ value: $(SOLR_COMMERCE_PREFIX_NAME)_CatalogItemsScope-Rebuild
+ - name: COMMERCEENGINE_SearchIndexPrefixPromotionsScope
+ value: $(SOLR_COMMERCE_PREFIX_NAME)_PromotionsScope
+ - name: COMMERCEENGINE_SearchIndexPrefixPromotionsScope-Rebuild
+ value: $(SOLR_COMMERCE_PREFIX_NAME)_PromotionsScope-Rebuild
+ - name: COMMERCEENGINE_SearchIndexPrefixPriceCardsScope
+ value: $(SOLR_COMMERCE_PREFIX_NAME)_PriceCardsScope
+ - name: COMMERCEENGINE_SearchIndexPrefixPriceCardsScope-Rebuild
+ value: $(SOLR_COMMERCE_PREFIX_NAME)_PriceCardsScope-Rebuild
+ - name: COMMERCEENGINE_EngineAuthoringUrl
+ value: https://$(engine-authoring-hostname)
+ - name: COMMERCEENGINE_EngineShopsUrl
+ value: https://$(engine-shops-hostname)
+ - name: COMMERCEENGINE_EngineMinionsUrl
+ value: https://$(engine-minions-hostname)
+ livenessProbe:
+ httpGet:
+ path: /health
+ port: 5000
+ httpHeaders:
+ - name: X-Kubernetes-Probe
+ value: Liveness
+ timeoutSeconds: 300
+ periodSeconds: 30
+ failureThreshold: 3
+ startupProbe:
+ httpGet:
+ path: /health
+ port: 5000
+ httpHeaders:
+ - name: X-Kubernetes-Probe
+ value: Startup
+ timeoutSeconds: 300
+ periodSeconds: 30
+ failureThreshold: 10
+ volumeMounts:
+ - mountPath: C:\engine\wwwroot\logs
+ name: logs
+ subPath: engineauthoring
+ resources:
+ requests:
+ memory: 500Mi
+ cpu: 500m
+ limits:
+ memory: 2Gi
+ cpu: 2000m
+ volumes:
+ - name: logs
+ persistentVolumeClaim:
+ claimName: logs
+ imagePullSecrets:
+ - name: sitecore-docker-registry
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/engine-minions.yaml b/sxc/10.3/k8s-commerce-xc1/engine-minions.yaml
new file mode 100644
index 0000000..2a5e708
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/engine-minions.yaml
@@ -0,0 +1,227 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: engine-minions
+spec:
+ selector:
+ app: engine-minions
+ ports:
+ - protocol: TCP
+ port: 5000
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: engine-minions
+ labels:
+ app: engine-minions
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: engine-minions
+ template:
+ metadata:
+ labels:
+ app: engine-minions
+ spec:
+ nodeSelector:
+ kubernetes.io/os: windows
+ containers:
+ - name: sitecore-xc-engine
+ image: sitecore-xc-engine
+ ports:
+ - containerPort: 5000
+ env:
+ - name: Database_Server
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseservername.txt
+ - name: SOLR_CORE_PREFIX_NAME
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-solr
+ key: sitecore-solr-core-prefix-name.txt
+ - name: COMMERCEENGINE_AppSettings__DeploymentId
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.name
+ - name: COMMERCEENGINE_CommerceConnector__ClientId
+ valueFrom:
+ secretKeyRef:
+ name: commerce-connect-client
+ key: commerce-connect-clientid.txt
+ - name: COMMERCEENGINE_GlobalDatabaseUserName
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseusername.txt
+ - name: COMMERCEENGINE_GlobalDatabasePassword
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databasepassword.txt
+ - name: COMMERCEENGINE_SharedDatabaseUserName
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseusername.txt
+ - name: COMMERCEENGINE_SharedDatabasePassword
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databasepassword.txt
+ - name: COMMERCEENGINE_SitecorePassword
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-admin
+ key: sitecore-adminpassword.txt
+ - name: COMMERCEENGINE_BraintreeEnvironment
+ valueFrom:
+ secretKeyRef:
+ name: commerce-braintree
+ key: commerce-engine-braintreeenvironment.txt
+ - name: COMMERCEENGINE_BraintreeMerchantId
+ valueFrom:
+ secretKeyRef:
+ name: commerce-braintree
+ key: commerce-engine-braintreemerchantid.txt
+ - name: COMMERCEENGINE_BraintreePublicKey
+ valueFrom:
+ secretKeyRef:
+ name: commerce-braintree
+ key: commerce-engine-braintreepublickey.txt
+ - name: COMMERCEENGINE_BraintreePrivateKey
+ valueFrom:
+ secretKeyRef:
+ name: commerce-braintree
+ key: commerce-engine-braintreeprivatekey.txt
+ - name: COMMERCEENGINE_SolrUrl
+ valueFrom:
+ secretKeyRef:
+ name: commerce-solr
+ key: commerce-solr-connection-string.txt
+ - name: SOLR_COMMERCE_PREFIX_NAME
+ valueFrom:
+ secretKeyRef:
+ name: commerce-solr
+ key: commerce-solr-prefix-name.txt
+ - name: COMMERCEENGINE_AppSettings__EnvironmentName
+ value: HabitatMinions
+ - name: COMMERCEENGINE_AppSettings__SitecoreIdentityServerUrl
+ value: https://$(id-hostname)
+ - name: COMMERCEENGINE_AppSettings__InternalSitecoreIdentityServerUrl
+ value: http://id
+ - name: COMMERCEENGINE_AppSettings__AllowedOrigins
+ value: https://$(bizfx-hostname)|https://$(cm-hostname)|https://$(cd-hostname)
+ - name: COMMERCEENGINE_AppSettings__AntiForgeryEnabled
+ value: "false"
+ - name: COMMERCEENGINE_AppSettings__UseHttpsInKestrel
+ value: "false"
+ - name: COMMERCEENGINE_Caching__Redis__Options__Configuration
+ valueFrom:
+ secretKeyRef:
+ name: commerce-redis
+ key: commerce-redis-connection-string.txt
+ - name: COMMERCEENGINE_Caching__Redis__Options__InstanceName
+ value: Redis
+ - name: COMMERCEENGINE_GlobalDatabaseName
+ value: SitecoreCommerce_Global
+ - name: COMMERCEENGINE_GlobalDatabaseServer
+ value: $(Database_Server)
+ - name: COMMERCEENGINE_GlobalTrustedConnection
+ value: "false"
+ - name: COMMERCEENGINE_SharedDatabaseName
+ value: SitecoreCommerce_SharedEnvironments
+ - name: COMMERCEENGINE_SharedArchiveDatabaseName
+ value: SitecoreCommerce_ArchiveSharedEnvironments
+ - name: COMMERCEENGINE_SharedDatabaseServer
+ value: $(Database_Server)
+ - name: COMMERCEENGINE_SharedTrustedConnection
+ value: "false"
+ - name: COMMERCEENGINE_SitecoreHost
+ value: $(CM_SERVICE_HOST)
+ - name: COMMERCEENGINE_SitecoreDatabase
+ value: master
+ - name: COMMERCEENGINE_SitecoreUsername
+ value: admin
+ - name: COMMERCEENGINE_SitecoreDomain
+ value: sitecore
+ - name: COMMERCEENGINE_SitecoreProtocol
+ value: http
+ - name: COMMERCEENGINE_SitecoreAllowAnonymousUser
+ value: "true"
+ - name: COMMERCEENGINE_SitecoreExternalProtocol
+ value: https
+ - name: COMMERCEENGINE_SitecoreExternalHost
+ value: $(cm-hostname)
+ - name: COMMERCEENGINE_IsSolrCloud
+ value: "true"
+ - name: COMMERCEENGINE_StorefrontIndexPrefix_web_index
+ value: $(SOLR_CORE_PREFIX_NAME)_web_index
+ - name: COMMERCEENGINE_StorefrontIndexPrefix_master_index
+ value: $(SOLR_CORE_PREFIX_NAME)_master_index
+ - name: COMMERCEENGINE_SearchIndexPrefixOrdersScope
+ value: $(SOLR_COMMERCE_PREFIX_NAME)_OrdersScope
+ - name: COMMERCEENGINE_SearchIndexPrefixOrdersScope-Rebuild
+ value: $(SOLR_COMMERCE_PREFIX_NAME)_OrdersScope-Rebuild
+ - name: COMMERCEENGINE_SearchIndexPrefixCustomersScope
+ value: $(SOLR_COMMERCE_PREFIX_NAME)_CustomersScope
+ - name: COMMERCEENGINE_SearchIndexPrefixCustomersScope-Rebuild
+ value: $(SOLR_COMMERCE_PREFIX_NAME)_CustomersScope-Rebuild
+ - name: COMMERCEENGINE_SearchIndexPrefixCatalogItemsScope
+ value: $(SOLR_COMMERCE_PREFIX_NAME)_CatalogItemsScope
+ - name: COMMERCEENGINE_SearchIndexPrefixCatalogItemsScope-Rebuild
+ value: $(SOLR_COMMERCE_PREFIX_NAME)_CatalogItemsScope-Rebuild
+ - name: COMMERCEENGINE_SearchIndexPrefixPromotionsScope
+ value: $(SOLR_COMMERCE_PREFIX_NAME)_PromotionsScope
+ - name: COMMERCEENGINE_SearchIndexPrefixPromotionsScope-Rebuild
+ value: $(SOLR_COMMERCE_PREFIX_NAME)_PromotionsScope-Rebuild
+ - name: COMMERCEENGINE_SearchIndexPrefixPriceCardsScope
+ value: $(SOLR_COMMERCE_PREFIX_NAME)_PriceCardsScope
+ - name: COMMERCEENGINE_SearchIndexPrefixPriceCardsScope-Rebuild
+ value: $(SOLR_COMMERCE_PREFIX_NAME)_PriceCardsScope-Rebuild
+ - name: COMMERCEENGINE_EngineAuthoringUrl
+ value: https://$(engine-authoring-hostname)
+ - name: COMMERCEENGINE_EngineShopsUrl
+ value: https://$(engine-shops-hostname)
+ - name: COMMERCEENGINE_EngineMinionsUrl
+ value: https://$(engine-minions-hostname)
+ livenessProbe:
+ httpGet:
+ path: /health
+ port: 5000
+ httpHeaders:
+ - name: X-Kubernetes-Probe
+ value: Liveness
+ timeoutSeconds: 300
+ periodSeconds: 30
+ failureThreshold: 3
+ startupProbe:
+ httpGet:
+ path: /health
+ port: 5000
+ httpHeaders:
+ - name: X-Kubernetes-Probe
+ value: Startup
+ timeoutSeconds: 300
+ periodSeconds: 30
+ failureThreshold: 10
+ volumeMounts:
+ - mountPath: C:\engine\wwwroot\logs
+ name: logs
+ subPath: engineminions
+ resources:
+ requests:
+ memory: 500Mi
+ cpu: 500m
+ limits:
+ memory: 2Gi
+ cpu: 2000m
+ volumes:
+ - name: logs
+ persistentVolumeClaim:
+ claimName: logs
+ imagePullSecrets:
+ - name: sitecore-docker-registry
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/engine-shops.yaml b/sxc/10.3/k8s-commerce-xc1/engine-shops.yaml
new file mode 100644
index 0000000..d3dd370
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/engine-shops.yaml
@@ -0,0 +1,227 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: engine-shops
+spec:
+ selector:
+ app: engine-shops
+ ports:
+ - protocol: TCP
+ port: 5000
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: engine-shops
+ labels:
+ app: engine-shops
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: engine-shops
+ template:
+ metadata:
+ labels:
+ app: engine-shops
+ spec:
+ nodeSelector:
+ kubernetes.io/os: windows
+ containers:
+ - name: sitecore-xc-engine
+ image: sitecore-xc-engine
+ ports:
+ - containerPort: 5000
+ env:
+ - name: Database_Server
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseservername.txt
+ - name: SOLR_CORE_PREFIX_NAME
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-solr
+ key: sitecore-solr-core-prefix-name.txt
+ - name: COMMERCEENGINE_AppSettings__DeploymentId
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.name
+ - name: COMMERCEENGINE_CommerceConnector__ClientId
+ valueFrom:
+ secretKeyRef:
+ name: commerce-connect-client
+ key: commerce-connect-clientid.txt
+ - name: COMMERCEENGINE_GlobalDatabaseUserName
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseusername.txt
+ - name: COMMERCEENGINE_GlobalDatabasePassword
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databasepassword.txt
+ - name: COMMERCEENGINE_SharedDatabaseUserName
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseusername.txt
+ - name: COMMERCEENGINE_SharedDatabasePassword
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databasepassword.txt
+ - name: COMMERCEENGINE_SitecorePassword
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-admin
+ key: sitecore-adminpassword.txt
+ - name: COMMERCEENGINE_BraintreeEnvironment
+ valueFrom:
+ secretKeyRef:
+ name: commerce-braintree
+ key: commerce-engine-braintreeenvironment.txt
+ - name: COMMERCEENGINE_BraintreeMerchantId
+ valueFrom:
+ secretKeyRef:
+ name: commerce-braintree
+ key: commerce-engine-braintreemerchantid.txt
+ - name: COMMERCEENGINE_BraintreePublicKey
+ valueFrom:
+ secretKeyRef:
+ name: commerce-braintree
+ key: commerce-engine-braintreepublickey.txt
+ - name: COMMERCEENGINE_BraintreePrivateKey
+ valueFrom:
+ secretKeyRef:
+ name: commerce-braintree
+ key: commerce-engine-braintreeprivatekey.txt
+ - name: COMMERCEENGINE_SolrUrl
+ valueFrom:
+ secretKeyRef:
+ name: commerce-solr
+ key: commerce-solr-connection-string.txt
+ - name: SOLR_COMMERCE_PREFIX_NAME
+ valueFrom:
+ secretKeyRef:
+ name: commerce-solr
+ key: commerce-solr-prefix-name.txt
+ - name: COMMERCEENGINE_AppSettings__EnvironmentName
+ value: HabitatShops
+ - name: COMMERCEENGINE_AppSettings__SitecoreIdentityServerUrl
+ value: https://$(id-hostname)
+ - name: COMMERCEENGINE_AppSettings__InternalSitecoreIdentityServerUrl
+ value: http://id
+ - name: COMMERCEENGINE_AppSettings__AllowedOrigins
+ value: https://$(bizfx-hostname)|https://$(cm-hostname)|https://$(cd-hostname)
+ - name: COMMERCEENGINE_AppSettings__AntiForgeryEnabled
+ value: "false"
+ - name: COMMERCEENGINE_AppSettings__UseHttpsInKestrel
+ value: "false"
+ - name: COMMERCEENGINE_Caching__Redis__Options__Configuration
+ valueFrom:
+ secretKeyRef:
+ name: commerce-redis
+ key: commerce-redis-connection-string.txt
+ - name: COMMERCEENGINE_Caching__Redis__Options__InstanceName
+ value: Redis
+ - name: COMMERCEENGINE_GlobalDatabaseName
+ value: SitecoreCommerce_Global
+ - name: COMMERCEENGINE_GlobalDatabaseServer
+ value: $(Database_Server)
+ - name: COMMERCEENGINE_GlobalTrustedConnection
+ value: "false"
+ - name: COMMERCEENGINE_SharedDatabaseName
+ value: SitecoreCommerce_SharedEnvironments
+ - name: COMMERCEENGINE_SharedArchiveDatabaseName
+ value: SitecoreCommerce_ArchiveSharedEnvironments
+ - name: COMMERCEENGINE_SharedDatabaseServer
+ value: $(Database_Server)
+ - name: COMMERCEENGINE_SharedTrustedConnection
+ value: "false"
+ - name: COMMERCEENGINE_SitecoreHost
+ value: $(CM_SERVICE_HOST)
+ - name: COMMERCEENGINE_SitecoreDatabase
+ value: master
+ - name: COMMERCEENGINE_SitecoreUsername
+ value: admin
+ - name: COMMERCEENGINE_SitecoreDomain
+ value: sitecore
+ - name: COMMERCEENGINE_SitecoreProtocol
+ value: http
+ - name: COMMERCEENGINE_SitecoreAllowAnonymousUser
+ value: "true"
+ - name: COMMERCEENGINE_SitecoreExternalProtocol
+ value: https
+ - name: COMMERCEENGINE_SitecoreExternalHost
+ value: $(cm-hostname)
+ - name: COMMERCEENGINE_IsSolrCloud
+ value: "true"
+ - name: COMMERCEENGINE_StorefrontIndexPrefix_web_index
+ value: $(SOLR_CORE_PREFIX_NAME)_web_index
+ - name: COMMERCEENGINE_StorefrontIndexPrefix_master_index
+ value: $(SOLR_CORE_PREFIX_NAME)_master_index
+ - name: COMMERCEENGINE_SearchIndexPrefixOrdersScope
+ value: $(SOLR_COMMERCE_PREFIX_NAME)_OrdersScope
+ - name: COMMERCEENGINE_SearchIndexPrefixOrdersScope-Rebuild
+ value: $(SOLR_COMMERCE_PREFIX_NAME)_OrdersScope-Rebuild
+ - name: COMMERCEENGINE_SearchIndexPrefixCustomersScope
+ value: $(SOLR_COMMERCE_PREFIX_NAME)_CustomersScope
+ - name: COMMERCEENGINE_SearchIndexPrefixCustomersScope-Rebuild
+ value: $(SOLR_COMMERCE_PREFIX_NAME)_CustomersScope-Rebuild
+ - name: COMMERCEENGINE_SearchIndexPrefixCatalogItemsScope
+ value: $(SOLR_COMMERCE_PREFIX_NAME)_CatalogItemsScope
+ - name: COMMERCEENGINE_SearchIndexPrefixCatalogItemsScope-Rebuild
+ value: $(SOLR_COMMERCE_PREFIX_NAME)_CatalogItemsScope-Rebuild
+ - name: COMMERCEENGINE_SearchIndexPrefixPromotionsScope
+ value: $(SOLR_COMMERCE_PREFIX_NAME)_PromotionsScope
+ - name: COMMERCEENGINE_SearchIndexPrefixPromotionsScope-Rebuild
+ value: $(SOLR_COMMERCE_PREFIX_NAME)_PromotionsScope-Rebuild
+ - name: COMMERCEENGINE_SearchIndexPrefixPriceCardsScope
+ value: $(SOLR_COMMERCE_PREFIX_NAME)_PriceCardsScope
+ - name: COMMERCEENGINE_SearchIndexPrefixPriceCardsScope-Rebuild
+ value: PriceCardsScope-Rebuild
+ - name: COMMERCEENGINE_EngineAuthoringUrl
+ value: https://$(engine-authoring-hostname)
+ - name: COMMERCEENGINE_EngineShopsUrl
+ value: https://$(engine-shops-hostname)
+ - name: COMMERCEENGINE_EngineMinionsUrl
+ value: https://$(engine-minions-hostname)
+ livenessProbe:
+ httpGet:
+ path: /health
+ port: 5000
+ httpHeaders:
+ - name: X-Kubernetes-Probe
+ value: Liveness
+ timeoutSeconds: 300
+ periodSeconds: 30
+ failureThreshold: 3
+ startupProbe:
+ httpGet:
+ path: /health
+ port: 5000
+ httpHeaders:
+ - name: X-Kubernetes-Probe
+ value: Startup
+ timeoutSeconds: 300
+ periodSeconds: 30
+ failureThreshold: 10
+ volumeMounts:
+ - mountPath: C:\engine\wwwroot\logs
+ name: logs
+ subPath: engineshops
+ resources:
+ requests:
+ memory: 500Mi
+ cpu: 1000m
+ limits:
+ memory: 4Gi
+ cpu: 7000m
+ volumes:
+ - name: logs
+ persistentVolumeClaim:
+ claimName: logs
+ imagePullSecrets:
+ - name: sitecore-docker-registry
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/external/kustomization.yaml b/sxc/10.3/k8s-commerce-xc1/external/kustomization.yaml
new file mode 100644
index 0000000..bb177eb
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/external/kustomization.yaml
@@ -0,0 +1,18 @@
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+
+images:
+- name: mssql
+ newName: mcr.microsoft.com/mssql/server
+ newTag: 2017-CU21-ubuntu-16.04
+- name: redis
+ newName: redis
+ newTag: 4.0.14-alpine
+- name: solr
+ newName: solr
+ newTag: 8.11.2
+
+resources:
+ - mssql.yaml
+ - redis.yaml
+ - solr.yaml
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/external/mssql.yaml b/sxc/10.3/k8s-commerce-xc1/external/mssql.yaml
new file mode 100644
index 0000000..bd79487
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/external/mssql.yaml
@@ -0,0 +1,57 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: mssql
+spec:
+ selector:
+ app: mssql
+ ports:
+ - protocol: TCP
+ port: 1433
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: mssql
+ labels:
+ app: mssql
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: mssql
+ template:
+ metadata:
+ labels:
+ app: mssql
+ spec:
+ nodeSelector:
+ kubernetes.io/os: linux
+ containers:
+ - name: mssql
+ image: mssql
+ securityContext:
+ allowPrivilegeEscalation: false
+ readOnlyRootFilesystem: true
+ runAsNonRoot: true
+ runAsUser: 101
+ ports:
+ - containerPort: 1433
+ env:
+ - name: SA_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databasepassword.txt
+ - name: ACCEPT_EULA
+ value: "Y"
+ volumeMounts:
+ - mountPath: /var/opt/mssql
+ name: sql
+ resources:
+ requests:
+ memory: 1200Mi
+ cpu: 200m
+ volumes:
+ - name: sql
+ emptyDir: {}
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/external/redis.yaml b/sxc/10.3/k8s-commerce-xc1/external/redis.yaml
new file mode 100644
index 0000000..ddeb8ab
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/external/redis.yaml
@@ -0,0 +1,49 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: redis
+spec:
+ selector:
+ app: redis
+ ports:
+ - protocol: TCP
+ port: 6379
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: redis
+ labels:
+ app: redis
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: redis
+ template:
+ metadata:
+ labels:
+ app: redis
+ spec:
+ volumes:
+ - emptyDir: {}
+ name: data
+ nodeSelector:
+ kubernetes.io/os: linux
+ containers:
+ - name: sitecore-redis
+ image: redis
+ ports:
+ - containerPort: 6379
+ securityContext:
+ allowPrivilegeEscalation: false
+ readOnlyRootFilesystem: true
+ runAsNonRoot: true
+ runAsUser: 1000
+ volumeMounts:
+ - mountPath: /data
+ name: data
+ resources:
+ requests:
+ memory: 100Mi
+ cpu: 100m
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/external/solr.yaml b/sxc/10.3/k8s-commerce-xc1/external/solr.yaml
new file mode 100644
index 0000000..4db5f84
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/external/solr.yaml
@@ -0,0 +1,62 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: solr
+spec:
+ selector:
+ app: solr
+ ports:
+ - protocol: TCP
+ port: 8983
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: solr
+ labels:
+ app: solr
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: solr
+ template:
+ metadata:
+ labels:
+ app: solr
+ spec:
+ nodeSelector:
+ kubernetes.io/os: linux
+ containers:
+ - name: solr
+ image: solr
+ securityContext:
+ allowPrivilegeEscalation: false
+ readOnlyRootFilesystem: true
+ runAsNonRoot: true
+ runAsUser: 1000
+ ports:
+ - containerPort: 8983
+ env:
+ - name: SOLR_MODE
+ value: solrcloud
+ startupProbe:
+ httpGet:
+ path: /solr/admin/info/system
+ port: 8983
+ httpHeaders:
+ - name: X-Kubernetes-Probe
+ value: Startup
+ timeoutSeconds: 30
+ periodSeconds: 10
+ failureThreshold: 10
+ volumeMounts:
+ - mountPath: /tmp
+ name: tmp
+ resources:
+ requests:
+ memory: 2048Mi
+ cpu: 500m
+ volumes:
+ - emptyDir: {}
+ name: tmp
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/id.yaml b/sxc/10.3/k8s-commerce-xc1/id.yaml
new file mode 100644
index 0000000..be84264
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/id.yaml
@@ -0,0 +1,134 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: id
+spec:
+ selector:
+ app: id
+ ports:
+ - protocol: TCP
+ port: 80
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: id
+ labels:
+ app: id
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: id
+ template:
+ metadata:
+ labels:
+ app: id
+ spec:
+ nodeSelector:
+ kubernetes.io/os: windows
+ containers:
+ - name: sitecore-xc-id
+ image: sitecore-xc-id
+ ports:
+ - containerPort: 80
+ env:
+ - name: Database_Server
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseservername.txt
+ - name: Core_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-core-database-username.txt
+ - name: Core_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-core-database-password.txt
+ - name: Sitecore_Sitecore__IdentityServer__Clients__PasswordClient__ClientSecrets__ClientSecret1
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-identity
+ key: sitecore-identitysecret.txt
+ - name: Sitecore_Sitecore__IdentityServer__CertificateRawData
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-identitycertificate
+ key: sitecore-identitycertificate.txt
+ - name: Sitecore_Sitecore__IdentityServer__CertificateRawDataPassword
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-identitycertificate
+ key: sitecore-identitycertificatepassword.txt
+ - name: Sitecore_License
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-license
+ key: sitecore-license.txt
+ - name: Sql_Database_Prefix
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseprefix.txt
+ - name: Sitecore_Sitecore__IdentityServer__Clients__CommerceEngineConnectClient__ClientId
+ valueFrom:
+ secretKeyRef:
+ name: commerce-connect-client
+ key: commerce-connect-clientid.txt
+ - name: Sitecore_Sitecore__IdentityServer__Clients__CommerceEngineConnectClient__ClientSecrets__ClientSecret1
+ valueFrom:
+ secretKeyRef:
+ name: commerce-connect-client
+ key: commerce-connect-clientsecret.txt
+ - name: Sitecore_Sitecore__IdentityServer__SitecoreMemberShipOptions__ConnectionString
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Core;User ID=$(Core_Database_Username);Password=$(Core_Database_Password);
+ - name: Sitecore_Sitecore__IdentityServer__AccountOptions__PasswordRecoveryUrl
+ value: https://$(cm-hostname)/sitecore/login?rc=1
+ - name: Sitecore_Sitecore__IdentityServer__Clients__DefaultClient__AllowedCorsOrigins__AllowedCorsOriginsGroup1
+ value: https://$(cm-hostname)
+ - name: Sitecore_Sitecore__IdentityServer__PublicOrigin
+ value: https://$(id-hostname)
+ - name: Sitecore_Sitecore__IdentityServer__Clients__CommerceClient__AllowedCorsOrigins__AllowedCorsOriginsGroup1
+ value: https://$(bizfx-hostname)|https://$(engine-authoring-hostname)
+ - name: Sitecore_Sitecore__IdentityServer__Clients__CommerceEngineConnectClient__AllowedCorsOrigins__AllowedCorsOriginsGroup1
+ value: https://$(cm-hostname)|https://$(cd-hostname)
+ livenessProbe:
+ httpGet:
+ path: /healthz/live
+ port: 80
+ httpHeaders:
+ - name: X-Kubernetes-Probe
+ value: Liveness
+ timeoutSeconds: 300
+ periodSeconds: 30
+ failureThreshold: 3
+ startupProbe:
+ httpGet:
+ path: /healthz/ready
+ port: 80
+ httpHeaders:
+ - name: X-Kubernetes-Probe
+ value: Startup
+ timeoutSeconds: 300
+ periodSeconds: 30
+ failureThreshold: 10
+ volumeMounts:
+ - mountPath: C:\Identity\logs
+ name: logs
+ subPath: id
+ resources:
+ requests:
+ memory: 400Mi
+ cpu: 50m
+ limits:
+ memory: 1Gi
+ cpu: 200m
+ volumes:
+ - name: logs
+ persistentVolumeClaim:
+ claimName: logs
+ imagePullSecrets:
+ - name: sitecore-docker-registry
diff --git a/sxc/10.3/k8s-commerce-xc1/ingress-nginx/configuration.yaml b/sxc/10.3/k8s-commerce-xc1/ingress-nginx/configuration.yaml
new file mode 100644
index 0000000..0089326
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/ingress-nginx/configuration.yaml
@@ -0,0 +1,8 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ namespace: ingress-basic
+ name: nginx-ingress-ingress-nginx-controller
+data:
+ use-forwarded-headers: "true"
+ enable-underscores-in-headers: "true"
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/ingress-nginx/ingress.yaml b/sxc/10.3/k8s-commerce-xc1/ingress-nginx/ingress.yaml
new file mode 100644
index 0000000..513a420
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/ingress-nginx/ingress.yaml
@@ -0,0 +1,107 @@
+apiVersion: networking.k8s.io/v1
+kind: Ingress
+metadata:
+ name: sitecore-ingress
+ annotations:
+ kubernetes.io/ingress.class: nginx
+ nginx.ingress.kubernetes.io/proxy-buffer-size: "32k"
+ nginx.ingress.kubernetes.io/affinity: "cookie"
+ nginx.ingress.kubernetes.io/rewrite-target: /
+ nginx.ingress.kubernetes.io/proxy-connect-timeout: "600"
+ nginx.ingress.kubernetes.io/proxy-read-timeout: "600"
+ nginx.ingress.kubernetes.io/proxy-send-timeout: "600"
+ nginx.ingress.kubernetes.io/proxy-body-size: "512m"
+spec:
+ rules:
+ - host: $(cd-hostname)
+ http:
+ paths:
+ - path: /
+ pathType: Prefix
+ backend:
+ service:
+ name: cd
+ port:
+ number: 80
+ - host: $(cm-hostname)
+ http:
+ paths:
+ - path: /
+ pathType: Prefix
+ backend:
+ service:
+ name: cm
+ port:
+ number: 80
+ - host: $(id-hostname)
+ http:
+ paths:
+ - path: /
+ pathType: Prefix
+ backend:
+ service:
+ name: id
+ port:
+ number: 80
+ - host: $(bizfx-hostname)
+ http:
+ paths:
+ - path: /
+ pathType: Prefix
+ backend:
+ service:
+ name: bizfx
+ port:
+ number: 80
+ - host: $(engine-authoring-hostname)
+ http:
+ paths:
+ - path: /
+ pathType: Prefix
+ backend:
+ service:
+ name: engine-authoring
+ port:
+ number: 5000
+ - host: $(engine-minions-hostname)
+ http:
+ paths:
+ - path: /
+ pathType: Prefix
+ backend:
+ service:
+ name: engine-minions
+ port:
+ number: 5000
+ - host: $(engine-shops-hostname)
+ http:
+ paths:
+ - path: /
+ pathType: Prefix
+ backend:
+ service:
+ name: engine-shops
+ port:
+ number: 5000
+ tls:
+ - secretName: global-cd-tls
+ hosts:
+ - $(cd-hostname)
+ - secretName: global-cm-tls
+ hosts:
+ - $(cm-hostname)
+ - secretName: global-id-tls
+ hosts:
+ - $(id-hostname)
+ - secretName: global-bizfx-tls
+ hosts:
+ - $(bizfx-hostname)
+ - secretName: global-authoring-tls
+ hosts:
+ - $(engine-authoring-hostname)
+ - secretName: global-minions-tls
+ hosts:
+ - $(engine-minions-hostname)
+ - secretName: global-shops-tls
+ hosts:
+ - $(engine-shops-hostname)
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/ingress-nginx/kustomization.yaml b/sxc/10.3/k8s-commerce-xc1/ingress-nginx/kustomization.yaml
new file mode 100644
index 0000000..967c983
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/ingress-nginx/kustomization.yaml
@@ -0,0 +1,9 @@
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+
+bases:
+- ../configmaps
+
+resources:
+ - ingress.yaml
+ - configuration.yaml
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/init/kustomization.yaml b/sxc/10.3/k8s-commerce-xc1/init/kustomization.yaml
new file mode 100644
index 0000000..ec9ad42
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/init/kustomization.yaml
@@ -0,0 +1,14 @@
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+
+images:
+- name: sitecore-xc1-mssql-init
+ newName: {registry}/{sxc-nonproduction-project}/sitecore-xc1-mssql-init
+ newTag: {commerce-version}
+- name: sitecore-xc1-solr-init
+ newName: {registry}/{sxc-nonproduction-project}/sitecore-xc1-solr-init
+ newTag: {commerce-version}
+
+resources:
+ - mssql-init.yaml
+ - solr-init.yaml
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/init/mssql-init.yaml b/sxc/10.3/k8s-commerce-xc1/init/mssql-init.yaml
new file mode 100644
index 0000000..8dd3d48
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/init/mssql-init.yaml
@@ -0,0 +1,207 @@
+apiVersion: batch/v1
+kind: Job
+metadata:
+ name: mssql-init
+spec:
+ template:
+ spec:
+ nodeSelector:
+ kubernetes.io/os: windows
+ imagePullSecrets:
+ - name: sitecore-docker-registry
+ containers:
+ - name: mssql-init
+ image: sitecore-xc1-mssql-init
+ env:
+ - name: sitecore_admin_password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-admin
+ key: sitecore-adminpassword.txt
+ - name: SQL_ADMIN_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databasepassword.txt
+ - name: SQL_ADMIN_LOGIN
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseusername.txt
+ - name: SQL_SERVER
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseservername.txt
+ - name: SQL_ELASTIC_POOL_NAME
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-database-elastic-pool-name.txt
+ - name: Master_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-master-database-username.txt
+ - name: Master_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-master-database-password.txt
+ - name: Core_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-core-database-username.txt
+ - name: Core_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-core-database-password.txt
+ - name: Web_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-web-database-username.txt
+ - name: Web_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-web-database-password.txt
+ - name: Forms_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-forms-database-username.txt
+ - name: Forms_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-forms-database-password.txt
+ - name: Exm_Master_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-exm-master-database-username.txt
+ - name: Exm_Master_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-exm-master-database-password.txt
+ - name: Marketing_Automation_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-marketing-automation-database-username.txt
+ - name: Marketing_Automation_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-marketing-automation-database-password.txt
+ - name: Messaging_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-messaging-database-username.txt
+ - name: Messaging_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-messaging-database-password.txt
+ - name: Reporting_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-reporting-database-username.txt
+ - name: Reporting_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-reporting-database-password.txt
+ - name: Reference_Data_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-reference-data-database-username.txt
+ - name: Reference_Data_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-reference-data-database-password.txt
+ - name: Processing_Pools_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-processing-pools-database-username.txt
+ - name: Processing_Pools_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-processing-pools-database-password.txt
+ - name: Processing_Tasks_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-processing-tasks-database-username.txt
+ - name: Processing_Tasks_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-processing-tasks-database-password.txt
+ - name: Processing_Engine_Tasks_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-processing-engine-tasks-database-username.txt
+ - name: Processing_Engine_Tasks_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-processing-engine-tasks-database-password.txt
+ - name: Processing_Engine_Storage_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-processing-engine-storage-database-username.txt
+ - name: Processing_Engine_Storage_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-processing-engine-storage-database-password.txt
+ - name: Collection_ShardMapManager_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-collection-shardmapmanager-database-username.txt
+ - name: Collection_ShardMapManager_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-collection-shardmapmanager-database-password.txt
+ - name: Sql_Database_Prefix
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseprefix.txt
+ - name: Sql_Custom_Database_Prefix_Update_From
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-custom-database-prefix-update-from.txt
+ - name: XC_SHARED_DB
+ valueFrom:
+ secretKeyRef:
+ name: commerce-database
+ key: commerce-engine-shared-databasename.txt
+ - name: XC_SHARED_ARCHIVE_DB
+ valueFrom:
+ secretKeyRef:
+ name: commerce-database
+ key: commerce-engine-archive-databasename.txt
+ - name: XC_DB_Masterkey_Password
+ valueFrom:
+ secretKeyRef:
+ name: commerce-database
+ key: commerce-engine-database-masterkey-password.txt
+ restartPolicy: Never
+ backoffLimit: 5
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/init/solr-init.yaml b/sxc/10.3/k8s-commerce-xc1/init/solr-init.yaml
new file mode 100644
index 0000000..035d5b7
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/init/solr-init.yaml
@@ -0,0 +1,37 @@
+apiVersion: batch/v1
+kind: Job
+metadata:
+ name: solr-init
+spec:
+ template:
+ spec:
+ nodeSelector:
+ kubernetes.io/os: windows
+ imagePullSecrets:
+ - name: sitecore-docker-registry
+ containers:
+ - name: solr-init
+ image: sitecore-xc1-solr-init
+ env:
+ - name: SITECORE_SOLR_CONNECTION_STRING
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-solr
+ key: sitecore-solr-connection-string.txt
+ - name: SOLR_CORE_PREFIX_NAME
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-solr
+ key: sitecore-solr-core-prefix-name.txt
+ - name: COMMERCE_SOLR_CONNECTION_STRING
+ valueFrom:
+ secretKeyRef:
+ name: commerce-solr
+ key: commerce-solr-connection-string.txt
+ - name: SOLR_COMMERCE_PREFIX_NAME
+ valueFrom:
+ secretKeyRef:
+ name: commerce-solr
+ key: commerce-solr-prefix-name.txt
+ restartPolicy: Never
+ backoffLimit: 5
diff --git a/sxc/10.3/k8s-commerce-xc1/kustomization.yaml b/sxc/10.3/k8s-commerce-xc1/kustomization.yaml
new file mode 100644
index 0000000..08c2ace
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/kustomization.yaml
@@ -0,0 +1,77 @@
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+
+bases:
+- configmaps
+
+images:
+- name: sitecore-xc-bizfx
+ newName: {registry}/{sxc-nonproduction-project}/sitecore-xc-bizfx
+ newTag: {commerce-version}
+- name: sitecore-xc1-cd
+ newName: {registry}/{sxc-nonproduction-project}/sitecore-xc1-cd
+ newTag: {commerce-version}
+- name: sitecore-xc1-cm
+ newName: {registry}/{sxc-nonproduction-project}/sitecore-xc1-cm
+ newTag: {commerce-version}
+- name: sitecore-xc-id
+ newName: {registry}/{sxc-nonproduction-project}/sitecore-xc-id7
+ newTag: {commerce-version}
+- name: sitecore-xp1-cortexprocessing
+ newName: {registry}/{project}/sitecore-xp1-cortexprocessing
+ newTag: {version}
+- name: sitecore-xp1-cortexprocessingworker
+ newName: {registry}/{project}/sitecore-xp1-cortexprocessingworker
+ newTag: {version}
+- name: sitecore-xp1-cortexreporting
+ newName: {registry}/{project}/sitecore-xp1-cortexreporting
+ newTag: {version}
+- name: sitecore-xc-engine
+ newName: {registry}/{sxc-nonproduction-project}/sitecore-xc-engine
+ newTag: {commerce-version}
+- name: sitecore-xc1-prc
+ newName: {registry}/{sxc-nonproduction-project}/sitecore-xc1-prc
+ newTag: {commerce-version}
+- name: sitecore-xc1-xdbautomation
+ newName: {registry}/{sxc-nonproduction-project}/sitecore-xc1-xdbautomation
+ newTag: {commerce-version}
+- name: sitecore-xp1-xdbautomationrpt
+ newName: {registry}/{project}/sitecore-xp1-xdbautomationrpt
+ newTag: {version}
+- name: sitecore-xc1-xdbautomationworker
+ newName: {registry}/{sxc-nonproduction-project}/sitecore-xc1-xdbautomationworker
+ newTag: {commerce-version}
+- name: sitecore-xc1-xdbcollection
+ newName: {registry}/{sxc-nonproduction-project}/sitecore-xc1-xdbcollection
+ newTag: {commerce-version}
+- name: sitecore-xp1-xdbrefdata
+ newName: {registry}/{project}/sitecore-xp1-xdbrefdata
+ newTag: {version}
+- name: sitecore-xc1-xdbsearch
+ newName: {registry}/{sxc-nonproduction-project}/sitecore-xc1-xdbsearch
+ newTag: {commerce-version}
+- name: sitecore-xc1-xdbsearchworker
+ newName: {registry}/{sxc-nonproduction-project}/sitecore-xc1-xdbsearchworker
+ newTag: {commerce-version}
+- name: pwsh-initContainer
+ newName: {powershell-version}
+
+resources:
+ - bizfx.yaml
+ - cm.yaml
+ - cd.yaml
+ - id.yaml
+ - cortexprocessing.yaml
+ - cortexprocessingworker.yaml
+ - cortexreporting.yaml
+ - engine-authoring.yaml
+ - engine-minions.yaml
+ - engine-shops.yaml
+ - prc.yaml
+ - xdbautomation.yaml
+ - xdbautomationrpt.yaml
+ - xdbautomationworker.yaml
+ - xdbcollection.yaml
+ - xdbrefdata.yaml
+ - xdbsearch.yaml
+ - xdbsearchworker.yaml
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/overlays/init/SearchStax/kustomization.yaml b/sxc/10.3/k8s-commerce-xc1/overlays/init/SearchStax/kustomization.yaml
new file mode 100644
index 0000000..296007b
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/overlays/init/SearchStax/kustomization.yaml
@@ -0,0 +1,22 @@
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+
+bases:
+- ..\..\..\init
+
+patchesStrategicMerge:
+ - solr-init.yaml
+
+images:
+- name: sitecore-xc1-solr-init-searchstax
+ newName: {registry}/{sxc-nonproduction-project}/sitecore-xc1-solr-init-searchstax
+ newTag: {commerce-version}
+
+generatorOptions:
+ disableNameSuffixHash: true
+secretGenerator:
+- name: sitecore-solr-searchstax
+ files:
+ - sitecore-searchstax-apikey.txt
+ - sitecore-searchstax-account-name.txt
+ - sitecore-searchstax-deployment-uid.txt
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/overlays/init/SearchStax/sitecore-searchstax-account-name.txt b/sxc/10.3/k8s-commerce-xc1/overlays/init/SearchStax/sitecore-searchstax-account-name.txt
new file mode 100644
index 0000000..e69de29
diff --git a/sxc/10.3/k8s-commerce-xc1/overlays/init/SearchStax/sitecore-searchstax-apikey.txt b/sxc/10.3/k8s-commerce-xc1/overlays/init/SearchStax/sitecore-searchstax-apikey.txt
new file mode 100644
index 0000000..e69de29
diff --git a/sxc/10.3/k8s-commerce-xc1/overlays/init/SearchStax/sitecore-searchstax-deployment-uid.txt b/sxc/10.3/k8s-commerce-xc1/overlays/init/SearchStax/sitecore-searchstax-deployment-uid.txt
new file mode 100644
index 0000000..e69de29
diff --git a/sxc/10.3/k8s-commerce-xc1/overlays/init/SearchStax/solr-init.yaml b/sxc/10.3/k8s-commerce-xc1/overlays/init/SearchStax/solr-init.yaml
new file mode 100644
index 0000000..fb8304c
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/overlays/init/SearchStax/solr-init.yaml
@@ -0,0 +1,52 @@
+apiVersion: batch/v1
+kind: Job
+metadata:
+ name: solr-init
+spec:
+ template:
+ spec:
+ nodeSelector:
+ kubernetes.io/os: windows
+ imagePullSecrets:
+ - name: sitecore-docker-registry
+ containers:
+ - name: solr-init
+ image: sitecore-xc1-solr-init-searchstax
+ env:
+ - name: SITECORE_SOLR_CONNECTION_STRING
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-solr
+ key: sitecore-solr-connection-string.txt
+ - name: SOLR_CORE_PREFIX_NAME
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-solr
+ key: sitecore-solr-core-prefix-name.txt
+ - name: COMMERCE_SOLR_CONNECTION_STRING
+ valueFrom:
+ secretKeyRef:
+ name: commerce-solr
+ key: commerce-solr-connection-string.txt
+ - name: SOLR_COMMERCE_PREFIX_NAME
+ valueFrom:
+ secretKeyRef:
+ name: commerce-solr
+ key: commerce-solr-prefix-name.txt
+ - name: SEARCH_STAX_APIKEY
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-solr-searchstax
+ key: sitecore-searchstax-apikey.txt
+ - name: SEARCH_STAX_ACCOUNT_NAME
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-solr-searchstax
+ key: sitecore-searchstax-account-name.txt
+ - name: SEARCH_STAX_DEPLOYMENT_UID
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-solr-searchstax
+ key: sitecore-searchstax-deployment-uid.txt
+ restartPolicy: Never
+ backoffLimit: 5
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/prc.yaml b/sxc/10.3/k8s-commerce-xc1/prc.yaml
new file mode 100644
index 0000000..4a67e66
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/prc.yaml
@@ -0,0 +1,186 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: prc
+spec:
+ selector:
+ app: prc
+ ports:
+ - protocol: TCP
+ port: 80
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: prc
+ labels:
+ app: prc
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: prc
+ template:
+ metadata:
+ labels:
+ app: prc
+ spec:
+ nodeSelector:
+ kubernetes.io/os: windows
+ initContainers:
+ - name: wait-xdbcollection
+ image: pwsh-initContainer
+ command: ["pwsh", "-Command", "do { Start-Sleep -Seconds 3 } until ($(try {(iwr http://xdbcollection/healthz/ready).StatusCode -eq 200} catch { $false }));"]
+ containers:
+ - name: sitecore-xc1-prc
+ image: sitecore-xc1-prc
+ ports:
+ - containerPort: 80
+ env:
+ - name: Sitecore_InstanceName
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.name
+ - name: Database_Server
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseservername.txt
+ - name: Master_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-master-database-username.txt
+ - name: Master_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-master-database-password.txt
+ - name: Core_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-core-database-username.txt
+ - name: Core_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-core-database-password.txt
+ - name: Reporting_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-reporting-database-username.txt
+ - name: Reporting_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-reporting-database-password.txt
+ - name: Reference_Data_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-reference-data-database-username.txt
+ - name: Reference_Data_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-reference-data-database-password.txt
+ - name: Processing_Pools_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-processing-pools-database-username.txt
+ - name: Processing_Pools_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-processing-pools-database-password.txt
+ - name: Processing_Tasks_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-processing-tasks-database-username.txt
+ - name: Processing_Tasks_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-processing-tasks-database-password.txt
+ - name: Sitecore_ConnectionStrings_Reporting.ApiKey
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-reporting
+ key: sitecore-reportingapikey.txt
+ - name: Sitecore_License
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-license
+ key: sitecore-license.txt
+ - name: Sql_Database_Prefix
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseprefix.txt
+ - name: LOG_LEVEL_VALUE
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-log-level
+ key: sitecore-log-level-value.txt
+ - name: Sitecore_ConnectionStrings_Core
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Core;User ID=$(Core_Database_Username);Password=$(Core_Database_Password);
+ - name: Sitecore_ConnectionStrings_Security
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Core;User ID=$(Core_Database_Username);Password=$(Core_Database_Password);
+ - name: Sitecore_ConnectionStrings_Master
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Master;User ID=$(Master_Database_Username);Password=$(Master_Database_Password);
+ - name: Sitecore_ConnectionStrings_Xdb.Processing.Pools
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Processing.pools;User ID=$(Processing_Pools_Database_Username);Password=$(Processing_Pools_Database_Password);
+ - name: Sitecore_ConnectionStrings_Xdb.Referencedata
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Referencedata;User ID=$(Reference_Data_Database_Username);Password=$(Reference_Data_Database_Password);
+ - name: Sitecore_ConnectionStrings_Xdb.Processing.Tasks
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Processing.tasks;User ID=$(Processing_Tasks_Database_Username);Password=$(Processing_Tasks_Database_Password);
+ - name: Sitecore_ConnectionStrings_Reporting
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Reporting;User ID=$(Reporting_Database_Username);Password=$(Reporting_Database_Password);
+ - name: Sitecore_ConnectionStrings_XConnect.Collection
+ value: http://xdbcollection
+ - name: MEDIA_REQUEST_PROTECTION_SHARED_SECRET
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-protect-media-requests
+ key: sitecore-media-request-protection-shared-secret.txt
+ livenessProbe:
+ httpGet:
+ path: /healthz/live
+ port: 80
+ httpHeaders:
+ - name: X-Kubernetes-Probe
+ value: Liveness
+ timeoutSeconds: 300
+ periodSeconds: 30
+ failureThreshold: 3
+ startupProbe:
+ httpGet:
+ path: /healthz/ready
+ port: 80
+ httpHeaders:
+ - name: X-Kubernetes-Probe
+ value: Startup
+ timeoutSeconds: 300
+ periodSeconds: 30
+ failureThreshold: 10
+ volumeMounts:
+ - mountPath: C:\inetpub\wwwroot\App_Data\logs
+ name: logs
+ subPath: prc
+ resources:
+ requests:
+ memory: 500Mi
+ cpu: 200m
+ limits:
+ memory: 2Gi
+ cpu: 500m
+ volumes:
+ - name: logs
+ persistentVolumeClaim:
+ claimName: logs
+ imagePullSecrets:
+ - name: sitecore-docker-registry
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/kustomization.yaml b/sxc/10.3/k8s-commerce-xc1/secrets/kustomization.yaml
new file mode 100644
index 0000000..b0b0106
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/kustomization.yaml
@@ -0,0 +1,140 @@
+generatorOptions:
+ disableNameSuffixHash: true
+secretGenerator:
+- name: sitecore-admin
+ files:
+ - xp/sitecore-adminpassword.txt
+- name: sitecore-database
+ files:
+ - xp/sitecore-databaseusername.txt
+ - xp/sitecore-databasepassword.txt
+ - xp/sitecore-databaseservername.txt
+ - xp/sitecore-collection-shardmapmanager-database-password.txt
+ - xp/sitecore-collection-shardmapmanager-database-username.txt
+ - xp/sitecore-core-database-password.txt
+ - xp/sitecore-core-database-username.txt
+ - xp/sitecore-exm-master-database-password.txt
+ - xp/sitecore-exm-master-database-username.txt
+ - xp/sitecore-forms-database-password.txt
+ - xp/sitecore-forms-database-username.txt
+ - xp/sitecore-marketing-automation-database-password.txt
+ - xp/sitecore-marketing-automation-database-username.txt
+ - xp/sitecore-master-database-password.txt
+ - xp/sitecore-master-database-username.txt
+ - xp/sitecore-messaging-database-password.txt
+ - xp/sitecore-messaging-database-username.txt
+ - xp/sitecore-processing-engine-storage-database-password.txt
+ - xp/sitecore-processing-engine-storage-database-username.txt
+ - xp/sitecore-processing-engine-tasks-database-password.txt
+ - xp/sitecore-processing-engine-tasks-database-username.txt
+ - xp/sitecore-processing-pools-database-password.txt
+ - xp/sitecore-processing-pools-database-username.txt
+ - xp/sitecore-processing-tasks-database-password.txt
+ - xp/sitecore-processing-tasks-database-username.txt
+ - xp/sitecore-reference-data-database-password.txt
+ - xp/sitecore-reference-data-database-username.txt
+ - xp/sitecore-reporting-database-password.txt
+ - xp/sitecore-reporting-database-username.txt
+ - xp/sitecore-web-database-password.txt
+ - xp/sitecore-web-database-username.txt
+ - xp/sitecore-database-elastic-pool-name.txt
+ - xp/sitecore-databaseprefix.txt
+ - xp/sitecore-custom-database-prefix-update-from.txt
+- name: sitecore-identitycertificate
+ files:
+ - xp/sitecore-identitycertificate.txt
+ - xp/sitecore-identitycertificatepassword.txt
+- name: sitecore-license
+ files:
+ - xp/sitecore-license.txt
+- name: sitecore-identity
+ files:
+ - xp/sitecore-identitysecret.txt
+- name: sitecore-graphql
+ files:
+ - xp/sitecore-graphql-uploadmedia_encryptionkey.txt
+- name: sitecore-telerik
+ files:
+ - xp/sitecore-telerikencryptionkey.txt
+- name: sitecore-reporting
+ files:
+ - xp/sitecore-reportingapikey.txt
+- name: sitecore-redis
+ files:
+ - xp/sitecore-redis-connection-string.txt
+- name: sitecore-solr
+ files:
+ - xp/sitecore-solr-connection-string.txt
+ - xp/sitecore-solr-core-prefix-name.txt
+- name: sitecore-solr-xdb
+ files:
+ - xp/sitecore-solr-connection-string-xdb.txt
+- name: sitecore-protect-media-requests
+ files:
+ - xp/sitecore-media-request-protection-shared-secret.txt
+- name: sitecore-log-level
+ files:
+ - xp/sitecore-log-level-value.txt
+- name: commerce-bizfx
+ files:
+ - xc/commerce-bizfx-currency.txt
+ - xc/commerce-bizfx-language.txt
+ - xc/commerce-bizfx-shopname.txt
+- name: commerce-connect-client
+ files:
+ - xc/commerce-connect-clientid.txt
+ - xc/commerce-connect-clientsecret.txt
+- name: commerce-braintree
+ files:
+ - xc/commerce-engine-braintreeenvironment.txt
+ - xc/commerce-engine-braintreemerchantid.txt
+ - xc/commerce-engine-braintreepublickey.txt
+ - xc/commerce-engine-braintreeprivatekey.txt
+- name: commerce-database
+ files:
+ - xc/commerce-engine-shared-databasename.txt
+ - xc/commerce-engine-archive-databasename.txt
+ - xc/commerce-engine-database-masterkey-password.txt
+- name: commerce-redis
+ files:
+ - xc/commerce-redis-connection-string.txt
+ - xc/commerce-connect-redis-connection-string.txt
+- name: commerce-solr
+ files:
+ - xc/commerce-solr-connection-string.txt
+ - xc/commerce-solr-prefix-name.txt
+- name: global-cd-tls
+ files:
+ - tls/global-cd/tls.key
+ - tls/global-cd/tls.crt
+ type: kubernetes.io/tls
+- name: global-cm-tls
+ files:
+ - tls/global-cm/tls.key
+ - tls/global-cm/tls.crt
+ type: kubernetes.io/tls
+- name: global-id-tls
+ files:
+ - tls/global-id/tls.key
+ - tls/global-id/tls.crt
+ type: kubernetes.io/tls
+- name: global-bizfx-tls
+ files:
+ - tls/global-bizfx/tls.key
+ - tls/global-bizfx/tls.crt
+ type: kubernetes.io/tls
+- name: global-authoring-tls
+ files:
+ - tls/global-authoring/tls.key
+ - tls/global-authoring/tls.crt
+ type: kubernetes.io/tls
+- name: global-minions-tls
+ files:
+ - tls/global-minions/tls.key
+ - tls/global-minions/tls.crt
+ type: kubernetes.io/tls
+- name: global-shops-tls
+ files:
+ - tls/global-shops/tls.key
+ - tls/global-shops/tls.crt
+ type: kubernetes.io/tls
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-authoring/tls.crt b/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-authoring/tls.crt
new file mode 100644
index 0000000..981384e
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-authoring/tls.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDDTCCAfWgAwIBAgIUV55kUKrxUoY/+zSh/785YT7KybcwDQYJKoZIhvcNAQEL
+BQAwJTEjMCEGA1UEAwwaQ29tbWVyY2UgQ29udGFpbmVyIFJvb3QgQ0EwHhcNMjAw
+NTI1MTkyNzI5WhcNMzAwNTIzMTkyNzI5WjAfMR0wGwYDVQQDDBRhdXRob3Jpbmcu
+Z2xvYmFsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALPBjrU7
+R5CU3H4afmOd/n0WWim15R/7o9sl94mo0ottY03PF4OvX0vBgd3j5YRkZvu9kKai
+NeFA5Ka7dFHiDhyvh8aTjDZmDyVjJCDOZckef42sMeM6yY4KJUmQ0plZ8cktZvxr
+B3J55zjPBzPN7uvgkcd3CQG9Q14Vz1DHgkfo2oefTDe5tEPPii7Cjt9sDztvW54U
+HzyNtCjjWeGDcrNAHTCOGSNaG75L+RKhe79pgo7XNHjdLExt2InSxmT/o94jg6Wc
+BaqoRNDR+O8eUiyx13EvW6UCis6QWXcPCUGOSLJhntf7IAbJB961NMSU/5+AeUcV
+/iZIqRw3WHhVyOUCAwEAAaM7MDkwCQYDVR0TBAIwADALBgNVHQ8EBAMCBeAwHwYD
+VR0RBBgwFoIUYXV0aG9yaW5nLmdsb2JhbGhvc3QwDQYJKoZIhvcNAQELBQADggEB
+AJikbT8u1TPcheGcC2dIS7bfWBGap4EWskAa16/bvQSjZZFf3WIXZZIQJQyXV3s5
+HUESWpPhN4Wy3ynMeL9mI1z/ZxsUnHcqr/Er79P2ZSJZ8ulcqbC57n+SOuvdMnwk
+4xHa4+hMqUfzywymMe/RpaRupzcT2EuUDRp/+CzPIf0CCI0aR2b3kAOdRyHS069h
+GQWBkIuDKT4sfQ993s0iYDZchHAWP924IfqPjhn22q80KtA/c7Q2DVlOMLLdbrDj
+DXj6HpbhQ24MPPwqSb4YM5NthXWWG3ps36/1ZnPm5+5qGBYLbqH5mUlLtrTWbfz5
+1XkLxj6hDEuQP4S+bk+/K+g=
+-----END CERTIFICATE-----
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-authoring/tls.key b/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-authoring/tls.key
new file mode 100644
index 0000000..10a38a3
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-authoring/tls.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAs8GOtTtHkJTcfhp+Y53+fRZaKbXlH/uj2yX3iajSi21jTc8X
+g69fS8GB3ePlhGRm+72QpqI14UDkprt0UeIOHK+HxpOMNmYPJWMkIM5lyR5/jawx
+4zrJjgolSZDSmVnxyS1m/GsHcnnnOM8HM83u6+CRx3cJAb1DXhXPUMeCR+jah59M
+N7m0Q8+KLsKO32wPO29bnhQfPI20KONZ4YNys0AdMI4ZI1obvkv5EqF7v2mCjtc0
+eN0sTG3YidLGZP+j3iODpZwFqqhE0NH47x5SLLHXcS9bpQKKzpBZdw8JQY5IsmGe
+1/sgBskH3rU0xJT/n4B5RxX+JkipHDdYeFXI5QIDAQABAoIBAQCvn2ZsTrSG38nl
+MsFVVqGzWMlSgzKO4u6eSCPnTRgXvRIOjUyuDgOPIkpdnjE5/lZXkkfnZgg6QYqk
+E/V7ot6izCRdsP6Gj4QwxQIhQ0ZTDwcURa6gEWmm6uavT11TEnuWUFOUPoWSJOPx
+ruOci5DoyAnl1bjpCB7vp2NbyvDQi166xGYAaeFQQ8DrIZ+qIAk6qV2+cyIa2ojg
+aRBl2ue/4qTaHny5jQBkUpr5d5sEhGtt2ih+8AZ7PSnDarwJPEzQRcVdXvghtcOr
+qdtXV7wuz9Dbm4B5+ubMYCxHOZcHdHm+jnM5P9wypKEQIuck1sgkGPmLYbp3abpD
+SYRrs61pAoGBAN4AiPrC8lwZoND73X7DpjjPhlTugiE2E6txUsvxuCQ3l5g5ZGBX
+wI7dwDwGa6Bqhz4OSw1WFJU28WoCk2KYqZtRXa2AN3h38iuHRu31jPnIuFKnG9q6
+cgF1VD8QWSCDwfx/nclBtpbg8EYfq1EEENq3p50zj3IlmvzKg7oZFEhPAoGBAM9I
+yrfy6XtCfq5kb/h7Bn1niruR3FbW9+mA/5x0R2LQeRMeqscqF7UXzdB2Wa2Tl7wX
+zmR2dlXGA0Ky00Au2TpK00uvt/Zi1UttEob//ARlTVQokQMtYj48E5l42LtXrg0Q
+Uwg2Y2lWNGk5hHFuPjiUtq9kTHJcstDl34DUPZqLAoGAfL7cOdw1h583CHeevM5/
+psil+S+Um8jhQKMLHWKUUHWUj4sgZiqpHx5oGNKaw6dYm3w4nCPUqQwYl7Me0nZq
+R8Zu10GG6gCsad039BrYvrsVKAyS0FOYIE2nq1AqZOTkqlejeCWeziVTnnPJNlsM
+hXpRizofzspmzsmVP4s8JG0CgYBwFd54ZYPXQPebeXgKlwvFV+3uy0qoMonP3A9c
+HIxVZIFz00tpcttq8zo5lSWc9IhCD2VtcZk/fFlbAbO1qx+Po9JpxNTnCD5qEMrJ
+8TXncpfEAEOZwjqziGzYuj4H37ugGMmtUSukVBb3J0D0zTYcBl5arROha3rN9t9K
+nHnLTQKBgF5GnBhYeQeSRyM739yqkZ9VBNmQ6Uvii7qIfSe3wWfvDxP/85bhK7TC
+miSlRjZJpcFUa+0Q40hfLMbcv083GurzBqeYFSzh1wj4MZ9RQxXyvU5VnTO7OiOU
+j3NGRZP0RYPF+VEgFPJdfj4dvENuTNECw/mrKGCPaZqUZkyeRGBH
+-----END RSA PRIVATE KEY-----
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-authority/root.crt b/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-authority/root.crt
new file mode 100644
index 0000000..93a1df5
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-authority/root.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDKzCCAhOgAwIBAgIUTtyxXGMSAGqacagqX2MztBOqEj8wDQYJKoZIhvcNAQEL
+BQAwJTEjMCEGA1UEAwwaQ29tbWVyY2UgQ29udGFpbmVyIFJvb3QgQ0EwHhcNMjAw
+NTI1MTkyNzI2WhcNNDcxMDExMTkyNzI2WjAlMSMwIQYDVQQDDBpDb21tZXJjZSBD
+b250YWluZXIgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+ALHqALgoV8Qv2nDlZ5+6Ti3QOFTNUEoe4jx5Q1HTfD2HSdyllANPgTP6uzC060xL
++2RPQkqTKLz/jQgvzkUq6iIBAXcv9aT4Dbiuif/bVbl0llGMlNQ3FxtBAKyRngfR
+pg56eZiH4f2ee/5+cipA6mSVGHAHX8TaiBG58kjKFxm3PgzPbomBbzCCPZgg8yE5
+UNEW01bs6CQqH6H4ijBmye0OPu2qq7/1ymg6lAGtRqMKpJq1z2sA78oR43GdAl98
+ejkDxecK0blrPpbhIUC7w7PIkn5LbNsMo1Ugm0lfm+qUw1j+PFtcOdXJYHA9DfJk
+RwKAY8Lvc2k1ZG+wqDm6YE0CAwEAAaNTMFEwHQYDVR0OBBYEFM5xK9Uyf/9Jk093
+Yo0yV8aCGtazMB8GA1UdIwQYMBaAFM5xK9Uyf/9Jk093Yo0yV8aCGtazMA8GA1Ud
+EwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBABqS5/hjb2HeHdgtV9But7Ph
+m5gnF2c4Eu5Ep5OYkZVNMF7OxV22frgl0KJGhYQNwocwaBX6PRr5wvzzOeEDC9u9
+jwmMxv7O+bLe2ma0YQHT4y1LITdnRF+/9u2kAHROIafaVWpNM7yaiiGMldRuGNXl
+Kbh4xk+TCM2BDi9IZI5rSr5L5tAwOHlDUc+DCmfdWD3tz14LLGGOJ2HRwjYww/n6
+NMX3PV7b9TNfC2980R1FEYnO9jb0oEhSoDZazPLWav8Y5la9Kbp7oa68wX5iN6WJ
+rEVF/NmAi4Di0IfH5X+zwfmKHVbWW7YmZHG6GVwm9H4p6KsXrouYFgOyEZZBXbg=
+-----END CERTIFICATE-----
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-authority/root.key b/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-authority/root.key
new file mode 100644
index 0000000..222dd22
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-authority/root.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEogIBAAKCAQEAseoAuChXxC/acOVnn7pOLdA4VM1QSh7iPHlDUdN8PYdJ3KWU
+A0+BM/q7MLTrTEv7ZE9CSpMovP+NCC/ORSrqIgEBdy/1pPgNuK6J/9tVuXSWUYyU
+1DcXG0EArJGeB9GmDnp5mIfh/Z57/n5yKkDqZJUYcAdfxNqIEbnySMoXGbc+DM9u
+iYFvMII9mCDzITlQ0RbTVuzoJCofofiKMGbJ7Q4+7aqrv/XKaDqUAa1GowqkmrXP
+awDvyhHjcZ0CX3x6OQPF5wrRuWs+luEhQLvDs8iSfkts2wyjVSCbSV+b6pTDWP48
+W1w51clgcD0N8mRHAoBjwu9zaTVkb7CoObpgTQIDAQABAoIBAGvOf+EXkRcwaA1A
+9Sm0murn4TqBrsU7MZuzXzeWDxK5h+hL7QSUiJYWuJcrCemRoSOHY4QM6AKeV7c+
+QJ9pAbbZJSozxYXRSX8/RB/lqGxYWT3REd4GA9pf6SiolDnor9bWIBhtPmOQRVJR
+DJzN+To5njVEQqPmR811/3pb+uN5QtxrGmUc6o6pK801yrEzLF0bsKS8Yr19w6gH
+cXZfoORnw4dxJ8ZaxqCz8c0FJV54UlMEtt2I/1cN77fxULOQa0wY1VgfrZPXPtQN
+XUjJ712PoSpHSYGVR+fo5XA+5CebCS2784h1SixRFoTH1eZCDeX/a1BemTJhvJKU
+J+pLe4ECgYEA4xfcOBaTft9KNW+dblDxa3FNVUpzTAK6z0IGfWIHKpsw2K/tGcU2
+3i9597J9YPUAJDF7boYQdgUpO2Xqs0OxG2Gu3o4dlwmiOb3U0VEkGd/WFatduPU4
+WEwfMlxbFWkzXUHoJSMil6x/JmqOULrT5hXXv2r9ED6MiljDV7wbq0sCgYEAyI+S
+78t7WXK3WHcZILhdklewpkWINTvWCWAUiqd7UiSh8CXiZa7Q/f3KL8wMTC4ot59V
+IcGqW9uDvUFS8xLqu7EkatkZwAcDRv4Z0LisjHyx7bOEyENIyHmHaMOGxCSOrGB9
+o0JGtzEoykfpJvNV3rTgOjYNWVyc/0vVoIoUC8cCgYBdp7V2nDjwFf5w0ztGB7PI
+781I449xRZ7tYvlyND9oXuBiPQu3mRHryACxGreCiQgp5Q5WooufYLmEeZ+1lrEv
+7bVEq6+gXqS804E1YhVVZm7QOQBKCzfVkm87QcN+rQg16bxntHnLu6Qkn8VZnfNN
+7KwxkVoUnPcxBzJouHdgyQKBgC07E+w4e60EjgzJb0VNzux+EjytWbaHtBGRNZC/
+jLRNxqeeI5zC/CcL4Vk+L1fO4SfoKw7d2km1C9TWsppXHdEOdiQSqhgAfOC51aCY
+xXE5ffcZkUyIwBVWMw+RaQc7J2IAsNTs0X3m/EgCR7adEjSTni4CmqgYlt+MfrUh
+7rtpAoGAdMiL0SSY0bbqJgjHRgKSQpDbtUb5GlnUHLHliVCzxZsZ9lYLSU2xIL38
+35tFVfDZx6n3Tj3TRxrmxoIbevWVAMtgHGTKNumsMggBoTyDnFji98FkuzjuxupV
+guyXbIkMjO3h0C2R8thHDeWsL7KG5KUxLXS6yt7boiA2j/Q60xw=
+-----END RSA PRIVATE KEY-----
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-bizfx/tls.crt b/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-bizfx/tls.crt
new file mode 100644
index 0000000..fb71f76
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-bizfx/tls.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDBTCCAe2gAwIBAgIUV55kUKrxUoY/+zSh/785YT7KybYwDQYJKoZIhvcNAQEL
+BQAwJTEjMCEGA1UEAwwaQ29tbWVyY2UgQ29udGFpbmVyIFJvb3QgQ0EwHhcNMjAw
+NTI1MTkyNzI5WhcNMzAwNTIzMTkyNzI5WjAbMRkwFwYDVQQDDBBiaXpmeC5nbG9i
+YWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx1M4i2dwtVkK
+1F0i/koBgijgpZDmLnr195nb2/IZZHPLPlPYrbFAjPe23qA8HNQ8RFHuKial1B5G
+VfZVJ+Xxb7N1caOLyPZ2g6N0NC5jMEOxZJSv0WZRs+gE7mIMN4P14EAuPOr8bSF7
+R5mdeuhfCTSgwKJNTCMtzGHrkeJas4YiawV5o+1bu6QvVOZiT9HYCtNrLVEiH9Li
+kgkGiVllBorFc/nmKYZyQSd56pO1pVkAeBnPvk9xX3N6asEoFRqjFPmyhL7UOKoQ
+uOco9D9GqgdkNUloAvbDPyxJ4hbxPH7HadLjxkd5trtOKF5SNZG2czOon6lkL9+t
+6G5zWZ6Q2wIDAQABozcwNTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIF4DAbBgNVHREE
+FDASghBiaXpmeC5nbG9iYWxob3N0MA0GCSqGSIb3DQEBCwUAA4IBAQA4JdHdVnSJ
+HRBJF9Jrl4QoIobBqxNK1u+mhBXzxL1+2CHd7/v6tzg+YS6XTsfsx7Y2NeidkfBS
+e7hyEazIlZMiCdIsslyCNu+ykEO4fKZyPSkcuUNsBZSCYnxlTLlmXHGWumht2TuH
+gcgjuUpJ/QCZcFPV9pCg3dnkNhiFRYN2yowrXaji0UsaJ5o77YaPHDZ559aEdbMv
+j8Dx1sZIosq6LR2Lwlxh6T3gS4PJqutTK1rpViXtDX2boP1lxkGU08/PY05O6paq
+kPTbxIL3/g67b4LxIXl2Padegir9zf/4c+ojKhHT3yD9q9JRF2cJESkKskD4qqRu
+u4dJVZ0fooj8
+-----END CERTIFICATE-----
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-bizfx/tls.key b/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-bizfx/tls.key
new file mode 100644
index 0000000..ccba44f
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-bizfx/tls.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEogIBAAKCAQEAx1M4i2dwtVkK1F0i/koBgijgpZDmLnr195nb2/IZZHPLPlPY
+rbFAjPe23qA8HNQ8RFHuKial1B5GVfZVJ+Xxb7N1caOLyPZ2g6N0NC5jMEOxZJSv
+0WZRs+gE7mIMN4P14EAuPOr8bSF7R5mdeuhfCTSgwKJNTCMtzGHrkeJas4YiawV5
+o+1bu6QvVOZiT9HYCtNrLVEiH9LikgkGiVllBorFc/nmKYZyQSd56pO1pVkAeBnP
+vk9xX3N6asEoFRqjFPmyhL7UOKoQuOco9D9GqgdkNUloAvbDPyxJ4hbxPH7HadLj
+xkd5trtOKF5SNZG2czOon6lkL9+t6G5zWZ6Q2wIDAQABAoIBACKkRgmEWsRJy2YJ
+IdHMDuMOM6zSuA6P9DuqE9nwA5W/wiz86YWWbr+RNckPVCM2h5rgGmJdASkScery
+uu4KOqHNMLYlVGAC5aoPOFzxSu/Sc/wlE0FzZPO9eU3s4G6tkof834xa0rAsx340
+Jnh79jhlWyLfkkuPOaBxzD04d8cHU+TS0W8r2o48sdd4U9O9kv3khMWJTzaNsnRX
+KC7rtrRwUmDZG0VTUtNZck7VGXx+HVNd2f/SWehScsFOcZXGLKz5jCRctGTz4rvR
+6Jh4efWz0g8xWBJnnXTbd4fIBIOKyt7WGozti+9+Aidm3/YLu7V34UERg2Z9tRkV
+MwGW4kECgYEA/K0T/TX7OZS8+1IKY81ENiHz/00kFgdrQ0I2w80DPtE49NbuUohT
++MS2hRRLtqxNi0LVqrCvwI9DjyINSJiyCNVvbDCf0/xP7AhB/8sSPykfMg1dkcb6
+hrhwx1DBk1exdAZJB4Uuip8WrXM3uuGX5WfloHl3cIqOtVSoxiNXmrECgYEAyfJ5
+0Zz7OEQje00Gn8uRe1pjBmsesNiwD9M5UrybybG5DPUSfx86ePn8OXjXBnGov3re
+s/ZJNazkYED9K1CKh+1RhUNVx7G2+cSLWWKwo2ReHA/XLPOqP2SA4mBvqCn0EJlS
+5fDPu7BvabMx1+cnlTs7ilpd52s2unstSc5Z70sCgYAR83noE121yYtjj4CNdpfS
+ALeE+8YEiqJkNOAPKRGB9PtG6b4kvuq4UcFl0vtODw+zRRxI9CSIWaVDFfg7oB2F
+4yP3W7z/In3LFwsZUSQKuLEurSRopupFh/T7NBGMlj5VL90gW6Xi00qZKAZdkIlq
+EueNbxO9OxrIZytWaExhAQKBgGoViS62szV0fdsYtGEe89aDvb8yaFXoDlzRzawL
+zh6e0KHg342N3w6L65ZZR0NoU4f6yKBqwTyEDRgPK68kSRFsdkV2AMq9LWx5deZH
+tJiwcct1+sfvXECe0CGbHSyOlVpe4LBP1yA2Z+BztLxA/ocjLXzZSbj2ljJR4JGD
+57SPAoGAKN4Evnb6pbalphxbLMmpfFMnpIIVeEOe8M1D+4t+PYn2etahXgbL30Za
+/56NlZBROLsYx16+R9NQ5xichfLPvh6lxwE+wuZwl8PbDsQW+JIVp5F7xD7yNu3w
+2oi/A4wmDqeUfGo7uVH1srK4muhrLTHSb9KYCJPSK627ZUP0N80=
+-----END RSA PRIVATE KEY-----
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-cd/tls.crt b/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-cd/tls.crt
new file mode 100644
index 0000000..8290c0a
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-cd/tls.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIC/zCCAeegAwIBAgIUV55kUKrxUoY/+zSh/785YT7KybUwDQYJKoZIhvcNAQEL
+BQAwJTEjMCEGA1UEAwwaQ29tbWVyY2UgQ29udGFpbmVyIFJvb3QgQ0EwHhcNMjAw
+NTI1MTkyNzI4WhcNMzAwNTIzMTkyNzI4WjAYMRYwFAYDVQQDDA1jZC5nbG9iYWxo
+b3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAw6Ful4XXvU4UIPk+
+iI6pXX16VW4skMAIhg4Jolwxz6/Wun33VEv7D5DvjkMrNccQJR9PEWHRB6YBhafh
+aq0QOdLG0d0MtVCCrpIWZdk5mWQEfVIoWbTEuC4UAmcMl6DoRgcu7HV8Hh4LES+Z
+EPqQIJpoOUCG291ZVLSQEL3EbCCsrhRgCmAxULSo3JjEkfCV3YUPz9QrN0z7qNu2
+PQG4CyiYdivPEJL1HEyfN+s5ex2pju6ovxzo3aAbwtp7Zmk3aVNOXha0xkzbzXHF
+tqrIi380aftEzV5cmEpdm8cUueqZN45HO5WCEmKpy1Vyv/61uPlT8VjjA+v+2DT0
+YORNJwIDAQABozQwMjAJBgNVHRMEAjAAMAsGA1UdDwQEAwIF4DAYBgNVHREEETAP
+gg1jZC5nbG9iYWxob3N0MA0GCSqGSIb3DQEBCwUAA4IBAQBV7l6QLZvjIeeEgCkj
+7gW+12QWl1eRQ1XDjzmfaSCKbpIwjVO/KllD1dKtiPGT8Pe9AVr0PvYoVCWY9nDX
+X1LXrZvYaY4d21IbcWrWNkwOaadmFbQ8FSD/2XWFgloM9zHwxXZa6z641JGLb9vS
+j4bIWXJlILiKiV4KTE7m1Hr3q5wfIrQdZrmmNRtw+S5IqCMw75BdGVH0FGxxm7Fs
+5Zr9P0dQBO60fb4VoyvcYXlv5wwXRiniNi+DkO/A5vjA9o3KoWsxBfdeiID2LErg
+AOjoRIcvqGXmrM+8CrxmIoi33n+FQF2cau3QfnpyOziQC5uNtj5O3ePjGkJZv5EU
+DOw5
+-----END CERTIFICATE-----
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-cd/tls.key b/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-cd/tls.key
new file mode 100644
index 0000000..551854c
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-cd/tls.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEogIBAAKCAQEAw6Ful4XXvU4UIPk+iI6pXX16VW4skMAIhg4Jolwxz6/Wun33
+VEv7D5DvjkMrNccQJR9PEWHRB6YBhafhaq0QOdLG0d0MtVCCrpIWZdk5mWQEfVIo
+WbTEuC4UAmcMl6DoRgcu7HV8Hh4LES+ZEPqQIJpoOUCG291ZVLSQEL3EbCCsrhRg
+CmAxULSo3JjEkfCV3YUPz9QrN0z7qNu2PQG4CyiYdivPEJL1HEyfN+s5ex2pju6o
+vxzo3aAbwtp7Zmk3aVNOXha0xkzbzXHFtqrIi380aftEzV5cmEpdm8cUueqZN45H
+O5WCEmKpy1Vyv/61uPlT8VjjA+v+2DT0YORNJwIDAQABAoIBAGmCXXUXWJ3eyHho
+NNPNrYagsCP3Qc3n5DD4zTVl5++NdJAsdAJg4E0q7CicDWf5rrl2w1wql2Q6okOF
+ocu4/zFQfq6dO8dmXrTsUWwo1inmiY1VjDGljxuOrngFQANfYyaxpRse2gwcQ/fG
+5hUELkuHO4L1TEa0gQNwRurgjlmJ6p0jYQT/m7gAQSxgy3dG5bID6qaJmRO+9kui
+36uKs4OiYswH2fMjidIv0jjLysJFkbFZy0FB0DBc9Hk/ojymiouuzuxGq0+uk50U
+9ThLpCpQ4NTse28YorkAilfggs+K43eRPUPTt7vlNuYeVe+8aXAo7qx9f1vf5RLA
+1HzXE9ECgYEA/SKnSOn5T0D+c9D7Pf1CzeDlLWZ0TQKhFmjgCM5s6CN1llnAz1ms
+LV8koRRtK1J+ylFNKry+QE+ZuX5FtaCxKCWE9OjYVSnaVTtr4+elTxcnwCONmv66
+YY2XGFd3yLrcQ6W2fzed1V+hSzK8zJ4DDWnoq7ko/STda5e4YQAl2FsCgYEAxdgv
+JlVezzu0OouUUGtg3w4vAnMxmsCKvPnsYszg3f81sTFUhInEzhmXCN4qUY8D7Bjb
+Lt44lJQDexC8uhhWgad8DbwudQDjxwSvX4wQUhVh54H33Zwk329v2I0T/R+BYl8Y
+c9VRRRKc2Jx4LB82vBswtQsQXUdfG2UtxCrCmCUCgYAVQVaoobTkecGj+fVOxDha
+zzqPMF4tpT3fgtjlBGhSqb+S62BsSMxTVvzdZbiw/ZFV7bO8FfMntUdkMv0pfh/C
+Djx20CJyLDyAEahCj83qsTgOQy39yMvfqyL30Uhmm4IpT/3d+s6O/yOtC8qcp9v7
+wVvfJ4IQl4rcIPZDdt62pwKBgCV6iZwKahZ56e95R5Rgcw5uQmuFZO068k1QTv58
+b1C+qu4xOSCOdLDSWjE83OlsXULZhpP/VtqWm34xsn7SY3jWQILdljNmAsBN2+cO
+wny6Pjy7+zeI/9cv5hEw0IuP71OyThCLZYTfPMUwBvfcxeKmh/iT6vqwrYykAyJ5
+MzndAoGAHlJ0gvBBrr6MkzrSd5UT0r6n6GFlmkIX9IppeQp49taeTM/SQfhhX5TD
+iTYy+8+Eqf+sujUzBlYb9jE8c9WY1lkOSCRKIEBlvAxzyFNWttMRInm+L4xf3K0q
+xcTcRiQjwcj9Qtk3g8YIaTrKPhjIyjP/cOdSaMAzu8ZRL9ta76k=
+-----END RSA PRIVATE KEY-----
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-cm/tls.crt b/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-cm/tls.crt
new file mode 100644
index 0000000..8a2f50e
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-cm/tls.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIC/zCCAeegAwIBAgIUV55kUKrxUoY/+zSh/785YT7KybQwDQYJKoZIhvcNAQEL
+BQAwJTEjMCEGA1UEAwwaQ29tbWVyY2UgQ29udGFpbmVyIFJvb3QgQ0EwHhcNMjAw
+NTI1MTkyNzI4WhcNMzAwNTIzMTkyNzI4WjAYMRYwFAYDVQQDDA1jbS5nbG9iYWxo
+b3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5Yw49VWGUVTpKETG
+WkBwp4L5c6LdvlmhJymrBNHFYC76j1P/CIVpt/mOnSgGZKb7PV+EGf36t5Ye7YCZ
+KTGr6DuPojPRCEyOXZkKNtZpVZ4mrOxfCUS2tONr3xfctqrYcaCCalhAuh52p8Xg
+leV0ohBqdRy9dRhi2LWOLI53DNX65ppECHV43uE9OWvR8YSnwpZJm4MHsaBr7Fmn
+vIjRSQ4LLZsfHM8casY09WvlmOzM4rqJT1HoxrYWLBG41PwXJvZkPxGeRAD/rIxl
+6x2UYrQ8hgeT+wbbh6Dhb9X9Dsv0GAa3iLsX7zXxknz6GGkDWXUm8SIOZazGS3Od
+yY+b2QIDAQABozQwMjAJBgNVHRMEAjAAMAsGA1UdDwQEAwIF4DAYBgNVHREEETAP
+gg1jbS5nbG9iYWxob3N0MA0GCSqGSIb3DQEBCwUAA4IBAQA5+HZWmShI1Bm43UmI
+uYrxMOzvRi6JX+L22M2/vZwB031fZd6vHzzLykHX/QzjH7DPmY+wzrH4uyebmKnS
+Niph6k/Q2w3f/SlY+mmuBcTVCdliuCMf0Q0mzBjHfkp1iyU2yTdJnBHqgs23gT5E
+709XsRLLlm3FCnc1Mf9W/oxx6I+Sxrm4T01glwUnZZoJuOC0fbmtGEXZY7ZLtX/w
+XqZtKLTiwUkrjTMt1ZUtRNHuh+NnxxMAdo8p2lKV6cPuKg3iVgAzY/gBkrT0xY6e
+MHcVQ9sovzIvvw7vOOfO+9jXfpOYUwDZHm7q3cHJkVxv/Qpsa6U0evKxmVSYN+/w
+SEF4
+-----END CERTIFICATE-----
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-cm/tls.key b/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-cm/tls.key
new file mode 100644
index 0000000..8b16e27
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-cm/tls.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEA5Yw49VWGUVTpKETGWkBwp4L5c6LdvlmhJymrBNHFYC76j1P/
+CIVpt/mOnSgGZKb7PV+EGf36t5Ye7YCZKTGr6DuPojPRCEyOXZkKNtZpVZ4mrOxf
+CUS2tONr3xfctqrYcaCCalhAuh52p8XgleV0ohBqdRy9dRhi2LWOLI53DNX65ppE
+CHV43uE9OWvR8YSnwpZJm4MHsaBr7FmnvIjRSQ4LLZsfHM8casY09WvlmOzM4rqJ
+T1HoxrYWLBG41PwXJvZkPxGeRAD/rIxl6x2UYrQ8hgeT+wbbh6Dhb9X9Dsv0GAa3
+iLsX7zXxknz6GGkDWXUm8SIOZazGS3OdyY+b2QIDAQABAoIBAQCpZtM+ErC+Yuhy
+hFbRkg7RQHIxaXc1m9W3HiQMuXZs5h6ZGcbzlemQEQazai9VpnlxMIU/3VRimdIX
+OjlN0k9oYlQ8wvq3oi/KWT/VemRgAAfQw9va7i/bzJ32FRkYYXq8WFUGgDy8XfD5
+HaoBVUW+uFioNt6GhMml3k6fCUBIYlgoTZsmt3eTo5dvpMX6seDjvXPHJkedkf6K
+jDY7/TG4wDmn6z/XREO8AEszK50VQpwaS2uw9+gJid9bCL6E1UJWqIFBc84gZxoE
+TKZoExcN8DZr4FmjKoAovnlSHsZkWd0lqYhtiXmbn6drF3dOIq+S1ebm49se8AaJ
+nVeUzW4BAoGBAPScBXQwIk39jsDNUKd7UX4Jw49HP0QeRIoZ/G8j5DR2nDg/i4uS
+52+8q2drZ4a/1DWaHDA1SO3YxxjvbXRW502sPDuS9MLJpAl38dLmpJ2IsDXtUSvu
+R7WsRHaEgon1OYvTNTH8N5k+IkEHk62LXKV3nvj9v9tQG6TxYXqO1RWZAoGBAPA8
+prHftfNlwnNCOz5zgwAxx2XdPn5I3xTJNVrPSABDdSFFqBZT+9iyK21qDZmtEIRf
+OlMhCN/SOYhCnfXnLTKkkIYgkiIU0cRtXQG2k62CsGNJ3jJ3FYC40f4Z00Dyfzut
+Vl30zGq8e2xaaVIcXoL6iBpET5K4hN51sjMOEiBBAoGAe2OUsLZzJ4pHD2TCUam4
+Qu7j8guLk239Pvi6yMl/HSPTy9/qIX76NfgjMmkQcP2lK2DQ5VSLtEcMr7xfJzeL
+ODgwrhCEXRngIFKb7rofwcOot5s9vf5VuAPtCSfwvWyxGaJyDAPhe/DG0Kzkxr8s
+/d7ol0tRE21GdJ66gFs6i8kCgYBqEd1n2+ZyORPJ4AxYXpgQlen8R9s31uToQI6W
+Mb8QnrgwoJi+gwZHfyM9g/3NRGRujb0qxwMsD53nU8J6uD90hMRq9CaRda/IkqDm
+CL7bdUB8FjlM/tc3pmLRVoW3v1n992KSyWsYFXBJPwIRhwUTv5ooPtEDbwT7U+wC
+LsxCAQKBgAHD6esIDWTzOr98BpGhmj9ioQE+05dvz6IqjZZTexB8gGUC3l8Jvt4x
+ZtApIpO2C0Iy51yqn1ihaNEiJsIwxbp7FDQmIdS2CebKMWh1okJgZcKj5DKDN5+s
+jgYVS/MDL91Vu7yWW5V4BIJhlsKvqyoqPSTXilT0/rN5AZ2bHgry
+-----END RSA PRIVATE KEY-----
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-id/tls.crt b/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-id/tls.crt
new file mode 100644
index 0000000..d906e96
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-id/tls.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIC/zCCAeegAwIBAgIUV55kUKrxUoY/+zSh/785YT7KybMwDQYJKoZIhvcNAQEL
+BQAwJTEjMCEGA1UEAwwaQ29tbWVyY2UgQ29udGFpbmVyIFJvb3QgQ0EwHhcNMjAw
+NTI1MTkyNzI4WhcNMzAwNTIzMTkyNzI4WjAYMRYwFAYDVQQDDA1pZC5nbG9iYWxo
+b3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu1X2666Tp3I17TOK
+9zxVZSiI2sf9LgLQ9pndcmHm9DuvK3W753HvfwI+pythEpY/EvAKjYh6JDAHU+Cc
+L1+oHg577YZZ4SoEW/kZDlssgdRHV3esdvliROSoxTnUX7mdZ40O6EHDJ8YIGCtc
+eB8AXpil/EGRknFIgh1qVoETbW/YOTm+eb8O20mYwmH1/Hjqlmw/NoqnkNNiUzkn
+HgtGOs7USaWIogOueD+pnGX0dPEmiXvuhb4dYxuNHAmjNCdqYf4dQWN8ThBruxmg
+t3PJ7B875gl0S6KNdwCX/6+mYTlOF6LH/mkkNFRXoSDZ4REeDOsXesqBD7l2NShG
+G4tOLwIDAQABozQwMjAJBgNVHRMEAjAAMAsGA1UdDwQEAwIF4DAYBgNVHREEETAP
+gg1pZC5nbG9iYWxob3N0MA0GCSqGSIb3DQEBCwUAA4IBAQBxKdiB/dYIX161txWV
+DtyHEpZT2WA90hRQvbYV5yZQZSs+HE1O3LGdGr2cJyaxIHBnb8R0DA4J36K5SZx9
+VhmuTqhTOLW4lPqizh0FOS/bwaVjY6MzRHNsNB5cdKZAV0IKsjeK4zmygfaCfUsN
++EDQP+OcDVBwSvT62OJ5DFciUm8Y4amrDyKpOB+cf/dZ5TMtq6LnQ40HtpXINHnQ
+Iu3NctLHt0sG4QGldymkynAQCVWg1IxWKVwPNHY9++TAd2z6Jy5qx2yCBWO1VTxE
+hsmUu1+IlPM6z4szha0kn2otWupIcIVusyhzTXt6BOi10VSr0Kbv0bB46chGSdWO
+pGLZ
+-----END CERTIFICATE-----
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-id/tls.key b/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-id/tls.key
new file mode 100644
index 0000000..53a7c06
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-id/tls.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEogIBAAKCAQEAu1X2666Tp3I17TOK9zxVZSiI2sf9LgLQ9pndcmHm9DuvK3W7
+53HvfwI+pythEpY/EvAKjYh6JDAHU+CcL1+oHg577YZZ4SoEW/kZDlssgdRHV3es
+dvliROSoxTnUX7mdZ40O6EHDJ8YIGCtceB8AXpil/EGRknFIgh1qVoETbW/YOTm+
+eb8O20mYwmH1/Hjqlmw/NoqnkNNiUzknHgtGOs7USaWIogOueD+pnGX0dPEmiXvu
+hb4dYxuNHAmjNCdqYf4dQWN8ThBruxmgt3PJ7B875gl0S6KNdwCX/6+mYTlOF6LH
+/mkkNFRXoSDZ4REeDOsXesqBD7l2NShGG4tOLwIDAQABAoIBAH8xidpRiP0q5YRs
+95CQDWcGk40ANl2UGe8lXx63bEktcOzwHimxySuSCZoVMO6exqqEApZAMLX7Si5g
+FYtwxkPKD8ig7MudbKJJygJeUyS/TcUMgzOwdVFTc2edsR1heIcDVjjJ1cheg8Zt
+QnZojiasPB6/Iiis888sS7P6JYeqPD4K/2Zyoh6JfwEMijWEKP9jIXy58xKqaACI
+uFI5ukQGS0foNOLi/dF4UTGdqohcgyBmETD7gX44DJ05KTJWN38O62Dxawawd++T
+02YBV4yDVpd81O3NwdP9MUim7ECCq4qdPo4BouknhMGnEiSFZp9SBAp7gAVUaar7
+cdA790kCgYEA4edLYxaRtvhHLWWTy/9BPcNIEd4O91e3/9i5AgsJqWdPnUBAw16a
+R7YU1D1q/Exhcjq+qgQsGPolILN3prWemPLGuHxSKsyk+rvgC50fFp+jzl0sWkSA
+x65/grLa7a9OBNH9t3hZx9n9ERQBbel4nkrfc5N3pTzKG4L2b3Dp5QMCgYEA1EtF
+894ZiCNJUBtDBAYBmQxCIQXqoOAxvlcUaUpLU1MiVuElsB0xphwp7qI5ehyK661G
+VYkKLnernxHOvk+Uic+x8hqG3LQaPjCysulAeA2conzwzFgzuAvJqfmh/YYUhluc
+mcJM9fECSLyKpS9gJUpjBgKP22BOSDP5gppH/GUCgYBJMHezPc+t+RiOc7eDw0pu
+6UMDTu+IYWoiwSOHru3NbcRUjUmuQos3qp1q+g8ceN6ldLTrPnjPCtRWmO6uG2+r
+3BRYFydD6JOXDKGVAa3d1ZDrvjIteL5Ec5uqS6o0kbR0SVirRZnI7y5XhyTDaH4E
+wvtMZb3A0kYkzbRr/Kg64wKBgAeDDludvUuK7BowjMOEruPKgkCG5BGDPV9d13QO
+U/ID3BA08U91CP+2uWkfRmdiwSuruvRl3/1a8LC1QZqMWFY0Cjjl5WXD3bXbpUcd
+Z9GXsbYyM5cXe+UETcN8+NVuvCUw8q6iKHT/bTRDr6g+r+lB45Uf3BVIKBz38dlE
+Ok3dAoGANOqcctgPDCUb7znmIgcLp3BhxPWd+REmwKM2jFWSVeH6m8VyjxLV0Nxr
+orR1rmWZVtgzsm2m8OrkuJV0ybKpMuMSypL1KhXhHbbXrRK1Ozjh2N23NaX4fLLK
+NiHE/7pIin5N7ejugvcmjl+fsAHa08jCXaMbbgLz9oYFCme8TSg=
+-----END RSA PRIVATE KEY-----
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-minions/tls.crt b/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-minions/tls.crt
new file mode 100644
index 0000000..99bbb1c
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-minions/tls.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDCTCCAfGgAwIBAgIUV55kUKrxUoY/+zSh/785YT7KybgwDQYJKoZIhvcNAQEL
+BQAwJTEjMCEGA1UEAwwaQ29tbWVyY2UgQ29udGFpbmVyIFJvb3QgQ0EwHhcNMjAw
+NTI1MTkyNzI5WhcNMzAwNTIzMTkyNzI5WjAdMRswGQYDVQQDDBJtaW5pb25zLmds
+b2JhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDCtN0hUquY
+pt8Q8p46RQPJFDqL34GIU/I4fCkkbozgMPNL6esmxOZtfR6cAKkLW0+LA1xHYM6E
+UJ5dDmMm4u4yTahEDaBi7OIFX0p1L7NTS4LOpeesXYvCU/hDmnjIOdrPx930iZIC
+zEhCcDKGGTP10HoD3G7W12pqAeIghwQtZfRV08shJPu3PSvp+87BrCEpXPmxfhL+
+UiwvUmYVT0IEkZxAoX1C+UwR3qdkys/rDNcNeYRQX1Im4rmYUzM287kG1xfQ/EOO
+JePmXoHDMlYA/12TgmfCBPx3qaBLHyuCZKbyYylwtw80OqTRJs0clpkD5KzpTZGt
+38y+hQsx9YWPAgMBAAGjOTA3MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgXgMB0GA1Ud
+EQQWMBSCEm1pbmlvbnMuZ2xvYmFsaG9zdDANBgkqhkiG9w0BAQsFAAOCAQEAciab
+Zx2NrFNJVuxTX9MsvOoH7aUFX2+mRmoHq6YUjCXGsiXJaZuqgGx90nY0Tv+YwO/a
+EiTSxF+Eg+3luym3f8iax+27Y11Xwwi/1dhen1bqXolo4+uKUpdiag+7/fwXfunc
+w6KJ0W+oNeyiNRPY+n7uezlH2tUaP0m6HDsI3Ufcin+DpFamgYqqcqSKcAwzOspA
+rMT3GgWlds+tKe928/AGAnJBGLpUrik4MoARtcl3lKyL4UWqVB14y8+hECfh7gtX
+ycIQCcpqJd99rXQevSHteeMQMiYGWblC/++rZklHmAdGbTyC/FXnfjRiWk93V/Zg
+GcoeNYP6bNExbZg4jw==
+-----END CERTIFICATE-----
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-minions/tls.key b/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-minions/tls.key
new file mode 100644
index 0000000..c9bf4d0
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-minions/tls.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEpQIBAAKCAQEAwrTdIVKrmKbfEPKeOkUDyRQ6i9+BiFPyOHwpJG6M4DDzS+nr
+JsTmbX0enACpC1tPiwNcR2DOhFCeXQ5jJuLuMk2oRA2gYuziBV9KdS+zU0uCzqXn
+rF2LwlP4Q5p4yDnaz8fd9ImSAsxIQnAyhhkz9dB6A9xu1tdqagHiIIcELWX0VdPL
+IST7tz0r6fvOwawhKVz5sX4S/lIsL1JmFU9CBJGcQKF9QvlMEd6nZMrP6wzXDXmE
+UF9SJuK5mFMzNvO5BtcX0PxDjiXj5l6BwzJWAP9dk4JnwgT8d6mgSx8rgmSm8mMp
+cLcPNDqk0SbNHJaZA+Ss6U2Rrd/MvoULMfWFjwIDAQABAoIBAQCY/1pMFxQz7dyX
+Cq7/BsBEv5qJ0uWMZLqPXDFQKXaVrKFh47weSNbw7kKhP3uWKvhEOi3HAPEG0/q9
+ENMk+WlHKfKxFywS0CWDJy/xCbyWFV4CWCfGL/Pkjesl5DpIy/1/DIUC5R9RB4k4
+e8WXzjIgVOOsKQkH1VoPVs+D09SafoYQx3+SJONFfJImkvFD4zEDIC0GehySxh6I
+akSOEpmIk59cX4gBc8gLpzbyPA7I3dUire6NEcTSJvRL1WC4WIJFUuSpLjrlNil0
+XrZ75gvms2vgbSIZypwS6ynW9oWmF/Xi1C2FicZiKkNTs+oRbTDxvV0/vxxHwQZ3
+K7KgAt3BAoGBAOWJo4obUGoRbknU9mXGt8t74afxY3cy/uflHoGSpnK4k5wZw64I
+AwiCMTpDLSMlFv3E1f5pi5WOCBIx52aysgl1cei1OoeofKXHcvbSYjvi4R1a2XO2
+AbcGxSso4FtrpaCMFMDd5eisRfUcdErFm0dKEIIynyoLw9v6mS4rlaVRAoGBANkn
+QCtrmILr6TEbP9nKIFgSd88bhrG44RCeMJtdSofMD55NJi+0MokehQ7plkXbj8DD
+jtjkxHngNb3TW9GypoGETjzWkKY3Ug6I+2BV6Wz2NDC2XQCy266uSfP5kf7iJ3yy
+eP+0jdzPee7wIA1+PzPJFqKSCGQUYKZEl3SnYUTfAoGBAOEkYi6in/uJ4V2174Dg
+q4KBnlL2aBORB4o5p/R7/ZtlBBQHCXJ4FVGRMevt3CYuySBco3GJ4QnuaGhAXrLS
+7+JrOjGBIUnSr4CD43XJ4eTPovMCG2xtx7zYfSjaTUYejjStceXDQTE5WN0U7dQx
+gx8nvI2YTZoWNCRe50TsJzohAoGBAIPP7IauwBuwYZNaTA7CP5HWW/1OYxtb8tno
+e+7C2SvG9TAM+oH4ariK2w+rQHlVBlRnID2N16l3LIf2VQTb4XA6xFbvk0whxmBm
+S9g1LgTjCdkLyTZUWz8UMnWy5ykFVBzAJOxqR7ZiBkzAW2R1Xp3rkR7Lb+Z37Bbh
+CeJYe5WXAoGAA2ZcEKzXP4OrWnuxonx6CpItFFDOFI+M7XjPBqkPWmrcfyb0o0+M
+bgkwfG2n7XZ8mQZkKOh8C7U0V5gCQEdHxa1I1D7VQ5bRrUDh8Bgk6q8GTc9lRYAR
+U1qXk8DYa1E3MGkb2KQIsEuHMdEuTYlj3bDv1tbtxAf1WB0+xSOTFl0=
+-----END RSA PRIVATE KEY-----
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-shops/tls.crt b/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-shops/tls.crt
new file mode 100644
index 0000000..9d363fd
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-shops/tls.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDBTCCAe2gAwIBAgIUV55kUKrxUoY/+zSh/785YT7KybowDQYJKoZIhvcNAQEL
+BQAwJTEjMCEGA1UEAwwaQ29tbWVyY2UgQ29udGFpbmVyIFJvb3QgQ0EwHhcNMjAw
+NTI1MTkyNzI5WhcNMzAwNTIzMTkyNzI5WjAbMRkwFwYDVQQDDBBzaG9wcy5nbG9i
+YWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6bmMuIXZ95TI
+bH9DU3KyPhsl2UxNN8NKKDFR1AL5HnOAlIrEXoahe8BKc0scA2hC3SrwBNdUywRV
+DxnHbsBrX1j0ez4UEYt51AMKQ0mNdhBPIbMOnELiyD/RPbYIwMVlm6UKA/u72Bhf
+lHGaZZ0Uv3b2j1uLWxASmA9VD5sQHxOBOXg43tgL/1su/zg3S76Z94h5fgxPet57
+AZJ/eDNkMaEwzYmeICrVjvCrUqS+1b+ES+rhI3CEVUn5IbmSRZ/gfa0bivDC9tNv
+nCi0zq6//t/iKKmmuMKexo4bscc3kXj6EbtKjp0Dq9Y6xErOFAJ4l3SoHqDqbJTP
+mdEd1+UA3QIDAQABozcwNTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIF4DAbBgNVHREE
+FDASghBzaG9wcy5nbG9iYWxob3N0MA0GCSqGSIb3DQEBCwUAA4IBAQAYj/qeO5XS
+4yv1F1Rn+JBvphhp7HO+cT5C+uOgxd7tUEMHqXQrj7U/vKc2nd/oDeVExd6E93Oj
+c6gNnT4PKBpB+5PgOHSjl+dhz0XSXA8RGwX5uI65mIhP8EpRAua5LGQimMdjuE7n
+DdclGyhnK9cDz3OpD+I50RefQ70aWDjqqS4yzQYph2mcIFiR0HcvXExGN7b3QK9D
+QTQY794dthfBpAfof4dQH8MtLFbbMzffzVm4vALEoahW/zEu0U9ajhUjVx8qcWCH
+bvCnuBX99IUBDz3EId14QVsD391BeMUrRvWkGOQqSrPYNAymoVjNTm0j7XOEIGYV
+fa7EVYSq7U3M
+-----END CERTIFICATE-----
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-shops/tls.key b/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-shops/tls.key
new file mode 100644
index 0000000..f58827f
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/tls/global-shops/tls.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEpQIBAAKCAQEA6bmMuIXZ95TIbH9DU3KyPhsl2UxNN8NKKDFR1AL5HnOAlIrE
+Xoahe8BKc0scA2hC3SrwBNdUywRVDxnHbsBrX1j0ez4UEYt51AMKQ0mNdhBPIbMO
+nELiyD/RPbYIwMVlm6UKA/u72BhflHGaZZ0Uv3b2j1uLWxASmA9VD5sQHxOBOXg4
+3tgL/1su/zg3S76Z94h5fgxPet57AZJ/eDNkMaEwzYmeICrVjvCrUqS+1b+ES+rh
+I3CEVUn5IbmSRZ/gfa0bivDC9tNvnCi0zq6//t/iKKmmuMKexo4bscc3kXj6EbtK
+jp0Dq9Y6xErOFAJ4l3SoHqDqbJTPmdEd1+UA3QIDAQABAoIBADWfeIWtUADZhdI+
+sHeozPQqzlg4hU7R42WtSxTVScqOvWVXIQ5+3PXDfFFPXjH57b1IaKDztmSNreY1
+B+iFBR1vD0hnSbtswJq/x88ARRBdVYppxmRbhCRlX+BEr2Vq5JD9IHshektt7B/m
+oIHHtEbpSFBDtIlD+sAgZGecL+qw4plV+hMQ7pEvhlQVk1yrsWMLO7uq5rYjXLSo
+ZgwhAzYiP+64Jm1PpJ4aIObmrXCypiNlsZagSmosYQjlP0Yrv3dojQ5YzzqsDjtX
+7wzSVu7WM3LrYEyl6itVZ72Sec/RAqK9jSNV5GHBjc2KNqx2QU7EIdHok9LEp/fg
+BUMQ7ZECgYEA/V5uCknsfllzcnvEUIYMx5LXYxL89WJATHsNGClU5CSQi0m578rI
+iKIYA1eKFWasNspex30dPnprgn2IYQKq33cG/dSK3rw9aml5ve8C/88RRCF4KRxb
+6a1v/PaV0Z+Utc7cYhptNTi66P1gwT0l2JO5zbL9XZ16LJ/i7cbH54cCgYEA7Cbl
+nt29SI4rcHLnwSQaDYdHElnI9fd8A3vg0fLgsNPVXI9RvRZJAFjyjWcw7QC/JaF9
+k9JJuH+zBu4udyU2bF76fPCGwi+iMgUnVIC2G0nwfmi8tPp7blFPX9r1nTSnIuUW
+5BSEqvlOIceYUpl8KSg1bdRFz35B4rY8a0Ob5XsCgYEA5TuwV4K2g0IvH183KJt/
+qHkEglDFqMVx40BZgoiyk485b6wOnBNeB7CQBUYIWoCAQzopMlfSQ5rC9lbZMtwU
++QVZwAGyev7YmhQ/30YF8qfHuVqGurs7tVoDvlzjA7tb8nnsDp5WPBbNlMrZ5TuL
+qD1Pl/nfHfnCdelaiUKVzrUCgYEAgM76onvqef/qG8zhMo1hlI18K7tDjT5vq2rP
+h1UGUA1LrNAT0qKsMP9TVeO6YRvuJzV9zLqAMZ2d5iLWv3BRzizETo/XwWW//66l
+9Ea8jgf3oMu6WrDh0JuTQwKoxBXrMHJq2P+EGcogXvaC1FMZ0U04T27goTwJ7gJe
+1FctWq8CgYEA0wmjzFlB+67VRQTCbbjkBRM13kQFxhhTgC2l/4FrLM1ZvOsAvjkE
+ES5A+T+Mel+mVUb01jWj3RYZrEGVAlRgDQV+y71Sb5BHtoA8vaG6eZax97IbA5b6
+Jru4OR4nvMU4A6zWxcx1J5kzH5bsZnIeJwFG/4+YEzwsCpzl0yQ6ApE=
+-----END RSA PRIVATE KEY-----
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-bizfx-currency.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-bizfx-currency.txt
new file mode 100644
index 0000000..11d6bf5
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-bizfx-currency.txt
@@ -0,0 +1 @@
+USD
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-bizfx-language.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-bizfx-language.txt
new file mode 100644
index 0000000..2c4c454
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-bizfx-language.txt
@@ -0,0 +1 @@
+en
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-bizfx-shopname.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-bizfx-shopname.txt
new file mode 100644
index 0000000..fd834bf
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-bizfx-shopname.txt
@@ -0,0 +1 @@
+CommerceEngineDefaultStorefront
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-connect-clientid.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-connect-clientid.txt
new file mode 100644
index 0000000..2187f07
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-connect-clientid.txt
@@ -0,0 +1 @@
+CommerceEngineConnect
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-connect-clientsecret.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-connect-clientsecret.txt
new file mode 100644
index 0000000..e69de29
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-connect-redis-connection-string.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-connect-redis-connection-string.txt
new file mode 100644
index 0000000..108c777
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-connect-redis-connection-string.txt
@@ -0,0 +1 @@
+redis:6379,defaultDatabase=1,allowAdmin=true,syncTimeout=3600000
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-engine-archive-databasename.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-engine-archive-databasename.txt
new file mode 100644
index 0000000..38f62d9
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-engine-archive-databasename.txt
@@ -0,0 +1 @@
+SitecoreCommerce_ArchiveSharedEnvironments
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-engine-braintreeenvironment.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-engine-braintreeenvironment.txt
new file mode 100644
index 0000000..e69de29
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-engine-braintreemerchantid.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-engine-braintreemerchantid.txt
new file mode 100644
index 0000000..e69de29
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-engine-braintreeprivatekey.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-engine-braintreeprivatekey.txt
new file mode 100644
index 0000000..e69de29
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-engine-braintreepublickey.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-engine-braintreepublickey.txt
new file mode 100644
index 0000000..e69de29
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-engine-database-masterkey-password.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-engine-database-masterkey-password.txt
new file mode 100644
index 0000000..09cac84
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-engine-database-masterkey-password.txt
@@ -0,0 +1 @@
+a3X8tA3FRMZf3xKN!
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-engine-shared-databasename.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-engine-shared-databasename.txt
new file mode 100644
index 0000000..755c261
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-engine-shared-databasename.txt
@@ -0,0 +1 @@
+SitecoreCommerce_SharedEnvironments
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-redis-connection-string.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-redis-connection-string.txt
new file mode 100644
index 0000000..15a10e5
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-redis-connection-string.txt
@@ -0,0 +1 @@
+redis:6379,ssl=False,abortConnect=False
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-solr-connection-string.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-solr-connection-string.txt
new file mode 100644
index 0000000..0f57f1c
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-solr-connection-string.txt
@@ -0,0 +1 @@
+http://solr:8983/solr
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-solr-prefix-name.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-solr-prefix-name.txt
new file mode 100644
index 0000000..e585d89
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xc/commerce-solr-prefix-name.txt
@@ -0,0 +1 @@
+commerce
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-adminpassword.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-adminpassword.txt
new file mode 100644
index 0000000..1cbe6f4
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-adminpassword.txt
@@ -0,0 +1 @@
+Password12345
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-collection-shardmapmanager-database-password.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-collection-shardmapmanager-database-password.txt
new file mode 100644
index 0000000..1cbe6f4
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-collection-shardmapmanager-database-password.txt
@@ -0,0 +1 @@
+Password12345
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-collection-shardmapmanager-database-username.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-collection-shardmapmanager-database-username.txt
new file mode 100644
index 0000000..44946c8
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-collection-shardmapmanager-database-username.txt
@@ -0,0 +1 @@
+shardmapmanageruser
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-core-database-password.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-core-database-password.txt
new file mode 100644
index 0000000..1cbe6f4
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-core-database-password.txt
@@ -0,0 +1 @@
+Password12345
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-core-database-username.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-core-database-username.txt
new file mode 100644
index 0000000..1a01ffc
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-core-database-username.txt
@@ -0,0 +1 @@
+coreuser
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-custom-database-prefix-update-from.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-custom-database-prefix-update-from.txt
new file mode 100644
index 0000000..e69de29
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-database-elastic-pool-name.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-database-elastic-pool-name.txt
new file mode 100644
index 0000000..e69de29
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-databasepassword.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-databasepassword.txt
new file mode 100644
index 0000000..1cbe6f4
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-databasepassword.txt
@@ -0,0 +1 @@
+Password12345
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-databaseprefix.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-databaseprefix.txt
new file mode 100644
index 0000000..84e851b
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-databaseprefix.txt
@@ -0,0 +1 @@
+Sitecore
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-databaseservername.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-databaseservername.txt
new file mode 100644
index 0000000..a5faf70
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-databaseservername.txt
@@ -0,0 +1 @@
+mssql
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-databaseusername.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-databaseusername.txt
new file mode 100644
index 0000000..0107e44
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-databaseusername.txt
@@ -0,0 +1 @@
+sa
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-exm-master-database-password.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-exm-master-database-password.txt
new file mode 100644
index 0000000..1cbe6f4
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-exm-master-database-password.txt
@@ -0,0 +1 @@
+Password12345
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-exm-master-database-username.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-exm-master-database-username.txt
new file mode 100644
index 0000000..6b4a10e
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-exm-master-database-username.txt
@@ -0,0 +1 @@
+exmmasteruser
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-forms-database-password.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-forms-database-password.txt
new file mode 100644
index 0000000..1cbe6f4
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-forms-database-password.txt
@@ -0,0 +1 @@
+Password12345
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-forms-database-username.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-forms-database-username.txt
new file mode 100644
index 0000000..2af6196
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-forms-database-username.txt
@@ -0,0 +1 @@
+formsuser
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-graphql-uploadmedia_encryptionkey.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-graphql-uploadmedia_encryptionkey.txt
new file mode 100644
index 0000000..e69de29
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-identitycertificate.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-identitycertificate.txt
new file mode 100644
index 0000000..e69de29
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-identitycertificatepassword.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-identitycertificatepassword.txt
new file mode 100644
index 0000000..e69de29
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-identitysecret.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-identitysecret.txt
new file mode 100644
index 0000000..e69de29
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-license.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-license.txt
new file mode 100644
index 0000000..e69de29
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-log-level-value.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-log-level-value.txt
new file mode 100644
index 0000000..6a34d78
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-log-level-value.txt
@@ -0,0 +1 @@
+INFO
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-marketing-automation-database-password.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-marketing-automation-database-password.txt
new file mode 100644
index 0000000..1cbe6f4
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-marketing-automation-database-password.txt
@@ -0,0 +1 @@
+Password12345
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-marketing-automation-database-username.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-marketing-automation-database-username.txt
new file mode 100644
index 0000000..0d2f9dc
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-marketing-automation-database-username.txt
@@ -0,0 +1 @@
+mauser
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-master-database-password.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-master-database-password.txt
new file mode 100644
index 0000000..1cbe6f4
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-master-database-password.txt
@@ -0,0 +1 @@
+Password12345
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-master-database-username.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-master-database-username.txt
new file mode 100644
index 0000000..92db714
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-master-database-username.txt
@@ -0,0 +1 @@
+masteruser
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-media-request-protection-shared-secret.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-media-request-protection-shared-secret.txt
new file mode 100644
index 0000000..e69de29
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-messaging-database-password.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-messaging-database-password.txt
new file mode 100644
index 0000000..1cbe6f4
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-messaging-database-password.txt
@@ -0,0 +1 @@
+Password12345
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-messaging-database-username.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-messaging-database-username.txt
new file mode 100644
index 0000000..627db56
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-messaging-database-username.txt
@@ -0,0 +1 @@
+messaginguser
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-processing-engine-storage-database-password.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-processing-engine-storage-database-password.txt
new file mode 100644
index 0000000..1cbe6f4
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-processing-engine-storage-database-password.txt
@@ -0,0 +1 @@
+Password12345
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-processing-engine-storage-database-username.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-processing-engine-storage-database-username.txt
new file mode 100644
index 0000000..0447fe0
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-processing-engine-storage-database-username.txt
@@ -0,0 +1 @@
+processingenginestorageuser
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-processing-engine-tasks-database-password.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-processing-engine-tasks-database-password.txt
new file mode 100644
index 0000000..1cbe6f4
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-processing-engine-tasks-database-password.txt
@@ -0,0 +1 @@
+Password12345
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-processing-engine-tasks-database-username.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-processing-engine-tasks-database-username.txt
new file mode 100644
index 0000000..09ab54b
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-processing-engine-tasks-database-username.txt
@@ -0,0 +1 @@
+processingenginetasksuser
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-processing-pools-database-password.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-processing-pools-database-password.txt
new file mode 100644
index 0000000..1cbe6f4
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-processing-pools-database-password.txt
@@ -0,0 +1 @@
+Password12345
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-processing-pools-database-username.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-processing-pools-database-username.txt
new file mode 100644
index 0000000..afa6719
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-processing-pools-database-username.txt
@@ -0,0 +1 @@
+processingpoolsuser
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-processing-tasks-database-password.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-processing-tasks-database-password.txt
new file mode 100644
index 0000000..1cbe6f4
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-processing-tasks-database-password.txt
@@ -0,0 +1 @@
+Password12345
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-processing-tasks-database-username.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-processing-tasks-database-username.txt
new file mode 100644
index 0000000..8731b1d
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-processing-tasks-database-username.txt
@@ -0,0 +1 @@
+processingtasksuser
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-redis-connection-string.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-redis-connection-string.txt
new file mode 100644
index 0000000..15a10e5
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-redis-connection-string.txt
@@ -0,0 +1 @@
+redis:6379,ssl=False,abortConnect=False
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-reference-data-database-password.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-reference-data-database-password.txt
new file mode 100644
index 0000000..1cbe6f4
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-reference-data-database-password.txt
@@ -0,0 +1 @@
+Password12345
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-reference-data-database-username.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-reference-data-database-username.txt
new file mode 100644
index 0000000..eec4367
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-reference-data-database-username.txt
@@ -0,0 +1 @@
+refdatauser
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-reporting-database-password.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-reporting-database-password.txt
new file mode 100644
index 0000000..1cbe6f4
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-reporting-database-password.txt
@@ -0,0 +1 @@
+Password12345
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-reporting-database-username.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-reporting-database-username.txt
new file mode 100644
index 0000000..68515d5
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-reporting-database-username.txt
@@ -0,0 +1 @@
+reportinguser
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-reportingapikey.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-reportingapikey.txt
new file mode 100644
index 0000000..55c80f2
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-reportingapikey.txt
@@ -0,0 +1 @@
+00112233445566778899AABBCCDDEEFF
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-solr-connection-string-xdb.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-solr-connection-string-xdb.txt
new file mode 100644
index 0000000..eea97d7
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-solr-connection-string-xdb.txt
@@ -0,0 +1 @@
+http://solr:8983/solr/sitecore_xdb;solrCloud=true
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-solr-connection-string.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-solr-connection-string.txt
new file mode 100644
index 0000000..223d335
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-solr-connection-string.txt
@@ -0,0 +1 @@
+http://solr:8983/solr;solrCloud=true
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-solr-core-prefix-name.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-solr-core-prefix-name.txt
new file mode 100644
index 0000000..3220fb3
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-solr-core-prefix-name.txt
@@ -0,0 +1 @@
+sitecore
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-telerikencryptionkey.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-telerikencryptionkey.txt
new file mode 100644
index 0000000..e69de29
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-web-database-password.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-web-database-password.txt
new file mode 100644
index 0000000..1cbe6f4
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-web-database-password.txt
@@ -0,0 +1 @@
+Password12345
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-web-database-username.txt b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-web-database-username.txt
new file mode 100644
index 0000000..134ed9d
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/secrets/xp/sitecore-web-database-username.txt
@@ -0,0 +1 @@
+webuser
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/volumes/azurefile/device-detection.yaml b/sxc/10.3/k8s-commerce-xc1/volumes/azurefile/device-detection.yaml
new file mode 100644
index 0000000..3bd66f3
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/volumes/azurefile/device-detection.yaml
@@ -0,0 +1,20 @@
+---
+kind: StorageClass
+apiVersion: storage.k8s.io/v1
+metadata:
+ name: device-detection
+provisioner: kubernetes.io/azure-file
+parameters:
+ skuName: Standard_LRS
+---
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+ name: device-detection
+spec:
+ accessModes:
+ - ReadWriteMany
+ storageClassName: device-detection
+ resources:
+ requests:
+ storage: 10Gi
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/volumes/azurefile/logs.yaml b/sxc/10.3/k8s-commerce-xc1/volumes/azurefile/logs.yaml
new file mode 100644
index 0000000..2f53307
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/volumes/azurefile/logs.yaml
@@ -0,0 +1,20 @@
+---
+kind: StorageClass
+apiVersion: storage.k8s.io/v1
+metadata:
+ name: logs
+provisioner: kubernetes.io/azure-file
+parameters:
+ skuName: Standard_LRS
+---
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+ name: logs
+spec:
+ accessModes:
+ - ReadWriteMany
+ storageClassName: logs
+ resources:
+ requests:
+ storage: 10Gi
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/volumes/azurefile/submit-queue.yaml b/sxc/10.3/k8s-commerce-xc1/volumes/azurefile/submit-queue.yaml
new file mode 100644
index 0000000..07b9bd3
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/volumes/azurefile/submit-queue.yaml
@@ -0,0 +1,20 @@
+---
+kind: StorageClass
+apiVersion: storage.k8s.io/v1
+metadata:
+ name: submit-queue
+provisioner: kubernetes.io/azure-file
+parameters:
+ skuName: Standard_LRS
+---
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+ name: submit-queue
+spec:
+ accessModes:
+ - ReadWriteMany
+ storageClassName: submit-queue
+ resources:
+ requests:
+ storage: 10Gi
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/volumes/hostpath/device-detection.yaml b/sxc/10.3/k8s-commerce-xc1/volumes/hostpath/device-detection.yaml
new file mode 100644
index 0000000..cd894bc
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/volumes/hostpath/device-detection.yaml
@@ -0,0 +1,27 @@
+---
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+ name: device-detection
+spec:
+ storageClassName: ""
+ capacity:
+ storage: 10Gi
+ accessModes:
+ - ReadWriteMany
+ persistentVolumeReclaimPolicy: Retain
+ hostPath:
+ path: "/sitecore/device-detection"
+ type: DirectoryOrCreate
+---
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+ name: device-detection
+spec:
+ accessModes:
+ - ReadWriteMany
+ resources:
+ requests:
+ storage: 10Gi
+ storageClassName: ""
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/volumes/hostpath/logs.yaml b/sxc/10.3/k8s-commerce-xc1/volumes/hostpath/logs.yaml
new file mode 100644
index 0000000..ab4a109
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/volumes/hostpath/logs.yaml
@@ -0,0 +1,27 @@
+---
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+ name: logs
+spec:
+ storageClassName: ""
+ capacity:
+ storage: 10Gi
+ accessModes:
+ - ReadWriteMany
+ persistentVolumeReclaimPolicy: Retain
+ hostPath:
+ path: "/sitecore/logs"
+ type: DirectoryOrCreate
+---
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+ name: logs
+spec:
+ accessModes:
+ - ReadWriteMany
+ resources:
+ requests:
+ storage: 10Gi
+ storageClassName: ""
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/volumes/hostpath/submit-queue.yaml b/sxc/10.3/k8s-commerce-xc1/volumes/hostpath/submit-queue.yaml
new file mode 100644
index 0000000..06aa4a7
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/volumes/hostpath/submit-queue.yaml
@@ -0,0 +1,27 @@
+---
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+ name: submit-queue
+spec:
+ storageClassName: ""
+ capacity:
+ storage: 10Gi
+ accessModes:
+ - ReadWriteMany
+ persistentVolumeReclaimPolicy: Retain
+ hostPath:
+ path: "/sitecore/submitqueue"
+ type: DirectoryOrCreate
+---
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+ name: submit-queue
+spec:
+ accessModes:
+ - ReadWriteMany
+ resources:
+ requests:
+ storage: 10Gi
+ storageClassName: ""
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/volumes/platform-config-storage.yaml b/sxc/10.3/k8s-commerce-xc1/volumes/platform-config-storage.yaml
new file mode 100644
index 0000000..0254253
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/volumes/platform-config-storage.yaml
@@ -0,0 +1,14 @@
+apiVersion: storage.k8s.io/v1
+kind: StorageClass
+metadata:
+ name: platform-config-storage
+provisioner: kubernetes.io/azure-file
+mountOptions:
+ - dir_mode=0777
+ - file_mode=0777
+ - uid=0
+ - gid=0
+ - mfsymlinks
+ - cache=strict
+parameters:
+ skuName: Standard_LRS
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/xdbautomation.yaml b/sxc/10.3/k8s-commerce-xc1/xdbautomation.yaml
new file mode 100644
index 0000000..4df5660
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/xdbautomation.yaml
@@ -0,0 +1,134 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: xdbautomation
+spec:
+ selector:
+ app: xdbautomation
+ ports:
+ - protocol: TCP
+ port: 80
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: xdbautomation
+ labels:
+ app: xdbautomation
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: xdbautomation
+ template:
+ metadata:
+ labels:
+ app: xdbautomation
+ spec:
+ nodeSelector:
+ kubernetes.io/os: windows
+ initContainers:
+ - name: wait-xdbcollection
+ image: pwsh-initContainer
+ command: ["pwsh", "-Command", "do { Start-Sleep -Seconds 3 } until ($(try {(iwr http://xdbcollection/healthz/ready).StatusCode -eq 200} catch { $false }));"]
+ - name: wait-xdbsearch
+ image: pwsh-initContainer
+ command: ["pwsh", "-Command", "do { Start-Sleep -Seconds 3 } until ($(try {(iwr http://xdbsearch/healthz/ready).StatusCode -eq 200} catch { $false }));"]
+ containers:
+ - name: sitecore-xc1-xdbautomation
+ image: sitecore-xc1-xdbautomation
+ ports:
+ - containerPort: 80
+ env:
+ - name: Database_Server
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseservername.txt
+ - name: Marketing_Automation_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-marketing-automation-database-username.txt
+ - name: Marketing_Automation_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-marketing-automation-database-password.txt
+ - name: Messaging_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-messaging-database-username.txt
+ - name: Messaging_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-messaging-database-password.txt
+ - name: Reference_Data_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-reference-data-database-username.txt
+ - name: Reference_Data_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-reference-data-database-password.txt
+ - name: Sitecore_License
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-license
+ key: sitecore-license.txt
+ - name: Sql_Database_Prefix
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseprefix.txt
+ - name: Sitecore_ConnectionStrings_Messaging
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Messaging;User ID=$(Messaging_Database_Username);Password=$(Messaging_Database_Password);
+ - name: Sitecore_ConnectionStrings_Xdb.Marketingautomation
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Marketingautomation;User ID=$(Marketing_Automation_Database_Username);Password=$(Marketing_Automation_Database_Password);
+ - name: Sitecore_ConnectionStrings_Xdb.Referencedata
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Referencedata;User ID=$(Reference_Data_Database_Username);Password=$(Reference_Data_Database_Password);
+ - name: Sitecore_ConnectionStrings_XConnect.Collection
+ value: http://xdbcollection
+ - name: Sitecore_ConnectionStrings_XConnect.Search
+ value: http://xdbsearch
+ livenessProbe:
+ httpGet:
+ path: /healthz/live
+ port: 80
+ httpHeaders:
+ - name: X-Kubernetes-Probe
+ value: Liveness
+ timeoutSeconds: 300
+ periodSeconds: 30
+ failureThreshold: 3
+ startupProbe:
+ httpGet:
+ path: /healthz/ready
+ port: 80
+ httpHeaders:
+ - name: X-Kubernetes-Probe
+ value: Startup
+ timeoutSeconds: 300
+ periodSeconds: 30
+ failureThreshold: 10
+ volumeMounts:
+ - mountPath: C:\inetpub\wwwroot\App_Data\logs
+ name: logs
+ subPath: xdbautomation
+ resources:
+ requests:
+ memory: 500Mi
+ cpu: 50m
+ limits:
+ memory: 1Gi
+ cpu: 200m
+ volumes:
+ - name: logs
+ persistentVolumeClaim:
+ claimName: logs
+ imagePullSecrets:
+ - name: sitecore-docker-registry
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/xdbautomationrpt.yaml b/sxc/10.3/k8s-commerce-xc1/xdbautomationrpt.yaml
new file mode 100644
index 0000000..2d4dfc6
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/xdbautomationrpt.yaml
@@ -0,0 +1,111 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: xdbautomationrpt
+spec:
+ selector:
+ app: xdbautomationrpt
+ ports:
+ - protocol: TCP
+ port: 80
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: xdbautomationrpt
+ labels:
+ app: xdbautomationrpt
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: xdbautomationrpt
+ template:
+ metadata:
+ labels:
+ app: xdbautomationrpt
+ spec:
+ nodeSelector:
+ kubernetes.io/os: windows
+ containers:
+ - name: sitecore-xp1-xdbautomationrpt
+ image: sitecore-xp1-xdbautomationrpt
+ ports:
+ - containerPort: 80
+ env:
+ - name: Database_Server
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseservername.txt
+ - name: Marketing_Automation_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-marketing-automation-database-username.txt
+ - name: Marketing_Automation_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-marketing-automation-database-password.txt
+ - name: Reference_Data_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-reference-data-database-username.txt
+ - name: Reference_Data_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-reference-data-database-password.txt
+ - name: Sitecore_License
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-license
+ key: sitecore-license.txt
+ - name: Sql_Database_Prefix
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseprefix.txt
+ - name: Sitecore_ConnectionStrings_Xdb.Marketingautomation
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Marketingautomation;User ID=$(Marketing_Automation_Database_Username);Password=$(Marketing_Automation_Database_Password);
+ - name: Sitecore_ConnectionStrings_Xdb.Referencedata
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Referencedata;User ID=$(Reference_Data_Database_Username);Password=$(Reference_Data_Database_Password);
+ livenessProbe:
+ httpGet:
+ path: /healthz/live
+ port: 80
+ httpHeaders:
+ - name: X-Kubernetes-Probe
+ value: Liveness
+ timeoutSeconds: 300
+ periodSeconds: 30
+ failureThreshold: 3
+ startupProbe:
+ httpGet:
+ path: /healthz/ready
+ port: 80
+ httpHeaders:
+ - name: X-Kubernetes-Probe
+ value: Startup
+ timeoutSeconds: 300
+ periodSeconds: 30
+ failureThreshold: 10
+ volumeMounts:
+ - mountPath: C:\inetpub\wwwroot\App_Data\logs
+ name: logs
+ subPath: xdbautomationrpt
+ resources:
+ requests:
+ memory: 500Mi
+ cpu: 50m
+ limits:
+ memory: 1Gi
+ cpu: 200m
+ volumes:
+ - name: logs
+ persistentVolumeClaim:
+ claimName: logs
+ imagePullSecrets:
+ - name: sitecore-docker-registry
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/xdbautomationworker.yaml b/sxc/10.3/k8s-commerce-xc1/xdbautomationworker.yaml
new file mode 100644
index 0000000..810e9cb
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/xdbautomationworker.yaml
@@ -0,0 +1,128 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: xdbautomationworker
+spec:
+ selector:
+ app: xdbautomationworker
+ ports:
+ - protocol: TCP
+ port: 8080
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: xdbautomationworker
+ labels:
+ app: xdbautomationworker
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: xdbautomationworker
+ template:
+ metadata:
+ labels:
+ app: xdbautomationworker
+ spec:
+ nodeSelector:
+ kubernetes.io/os: windows
+ initContainers:
+ - name: wait-xdbcollection
+ image: pwsh-initContainer
+ command: ["pwsh", "-Command", "do { Start-Sleep -Seconds 3 } until ($(try {(iwr http://xdbcollection/healthz/ready).StatusCode -eq 200} catch { $false }));"]
+ - name: wait-xdbsearch
+ image: pwsh-initContainer
+ command: ["pwsh", "-Command", "do { Start-Sleep -Seconds 3 } until ($(try {(iwr http://xdbsearch/healthz/ready).StatusCode -eq 200} catch { $false }));"]
+ containers:
+ - name: sitecore-xc1-xdbautomationworker
+ image: sitecore-xc1-xdbautomationworker
+ env:
+ - name: Database_Server
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseservername.txt
+ - name: Messaging_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-messaging-database-username.txt
+ - name: Messaging_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-messaging-database-password.txt
+ - name: Marketing_Automation_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-marketing-automation-database-username.txt
+ - name: Marketing_Automation_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-marketing-automation-database-password.txt
+ - name: Reference_Data_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-reference-data-database-username.txt
+ - name: Reference_Data_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-reference-data-database-password.txt
+ - name: Sitecore_License
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-license
+ key: sitecore-license.txt
+ - name: Sql_Database_Prefix
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseprefix.txt
+ - name: Sitecore_ConnectionStrings_XConnect.Collection
+ value: http://xdbcollection
+ - name: Sitecore_ConnectionStrings_XConnect.Search
+ value: http://xdbsearch
+ - name: Sitecore_ConnectionStrings_Xdb.Marketingautomation
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Marketingautomation;User ID=$(Marketing_Automation_Database_Username);Password=$(Marketing_Automation_Database_Password);
+ - name: Sitecore_ConnectionStrings_Xdb.Referencedata
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Referencedata;User ID=$(Reference_Data_Database_Username);Password=$(Reference_Data_Database_Password);
+ - name: Sitecore_ConnectionStrings_Messaging
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Messaging;User ID=$(Messaging_Database_Username);Password=$(Messaging_Database_Password);
+ livenessProbe:
+ exec:
+ command:
+ - curl
+ - http://localhost:8080/healthz/live
+ timeoutSeconds: 300
+ periodSeconds: 30
+ failureThreshold: 3
+ startupProbe:
+ exec:
+ command:
+ - curl
+ - http://localhost:8080/healthz/ready
+ timeoutSeconds: 300
+ periodSeconds: 30
+ failureThreshold: 10
+ volumeMounts:
+ - mountPath: C:\service\App_Data\Logs
+ name: logs
+ subPath: xdbautomationworker
+ resources:
+ requests:
+ memory: 200Mi
+ cpu: 20m
+ limits:
+ memory: 1Gi
+ cpu: 200m
+ volumes:
+ - name: logs
+ persistentVolumeClaim:
+ claimName: logs
+ imagePullSecrets:
+ - name: sitecore-docker-registry
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/xdbcollection.yaml b/sxc/10.3/k8s-commerce-xc1/xdbcollection.yaml
new file mode 100644
index 0000000..865c96e
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/xdbcollection.yaml
@@ -0,0 +1,147 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: xdbcollection
+spec:
+ selector:
+ app: xdbcollection
+ ports:
+ - protocol: TCP
+ port: 80
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: xdbcollection
+ labels:
+ app: xdbcollection
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: xdbcollection
+ template:
+ metadata:
+ labels:
+ app: xdbcollection
+ spec:
+ nodeSelector:
+ kubernetes.io/os: windows
+ containers:
+ - name: sitecore-xc1-xdbcollection
+ image: sitecore-xc1-xdbcollection
+ ports:
+ - containerPort: 80
+ env:
+ - name: Database_Server
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseservername.txt
+ - name: Messaging_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-messaging-database-username.txt
+ - name: Messaging_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-messaging-database-password.txt
+ - name: Marketing_Automation_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-marketing-automation-database-username.txt
+ - name: Marketing_Automation_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-marketing-automation-database-password.txt
+ - name: Collection_ShardMapManager_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-collection-shardmapmanager-database-username.txt
+ - name: Collection_ShardMapManager_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-collection-shardmapmanager-database-password.txt
+ - name: Processing_Pools_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-processing-pools-database-username.txt
+ - name: Processing_Pools_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-processing-pools-database-password.txt
+ - name: Reference_Data_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-reference-data-database-username.txt
+ - name: Reference_Data_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-reference-data-database-password.txt
+ - name: Sitecore_License
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-license
+ key: sitecore-license.txt
+ - name: Sql_Database_Prefix
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseprefix.txt
+ - name: Sitecore_ConnectionStrings_Messaging
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Messaging;User ID=$(Messaging_Database_Username);Password=$(Messaging_Database_Password);
+ - name: Sitecore_ConnectionStrings_Xdb.Marketingautomation
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Marketingautomation;User ID=$(Marketing_Automation_Database_Username);Password=$(Marketing_Automation_Database_Password);
+ - name: Sitecore_ConnectionStrings_Xdb.Processing.Pools
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Processing.pools;User ID=$(Processing_Pools_Database_Username);Password=$(Processing_Pools_Database_Password);
+ - name: Sitecore_ConnectionStrings_Collection
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Xdb.Collection.ShardMapManager;User ID=$(Collection_ShardMapManager_Database_Username);Password=$(Collection_ShardMapManager_Database_Password);
+ - name: Sitecore_ConnectionStrings_Xdb.Referencedata
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Referencedata;User ID=$(Reference_Data_Database_Username);Password=$(Reference_Data_Database_Password);
+ livenessProbe:
+ httpGet:
+ path: /healthz/live
+ port: 80
+ httpHeaders:
+ - name: X-Kubernetes-Probe
+ value: Liveness
+ timeoutSeconds: 300
+ periodSeconds: 30
+ failureThreshold: 3
+ startupProbe:
+ httpGet:
+ path: /healthz/ready
+ port: 80
+ httpHeaders:
+ - name: X-Kubernetes-Probe
+ value: Startup
+ timeoutSeconds: 300
+ periodSeconds: 30
+ failureThreshold: 10
+ volumeMounts:
+ - mountPath: C:\inetpub\wwwroot\App_Data\logs
+ name: logs
+ subPath: xdbcollection
+ resources:
+ requests:
+ memory: 500Mi
+ cpu: 150m
+ limits:
+ memory: 2Gi
+ cpu: 500m
+ volumes:
+ - name: logs
+ persistentVolumeClaim:
+ claimName: logs
+ imagePullSecrets:
+ - name: sitecore-docker-registry
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/xdbrefdata.yaml b/sxc/10.3/k8s-commerce-xc1/xdbrefdata.yaml
new file mode 100644
index 0000000..047002d
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/xdbrefdata.yaml
@@ -0,0 +1,99 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: xdbrefdata
+spec:
+ selector:
+ app: xdbrefdata
+ ports:
+ - protocol: TCP
+ port: 80
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: xdbrefdata
+ labels:
+ app: xdbrefdata
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: xdbrefdata
+ template:
+ metadata:
+ labels:
+ app: xdbrefdata
+ spec:
+ nodeSelector:
+ kubernetes.io/os: windows
+ containers:
+ - name: sitecore-xp1-xdbrefdata
+ image: sitecore-xp1-xdbrefdata
+ ports:
+ - containerPort: 80
+ env:
+ - name: Database_Server
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseservername.txt
+ - name: Reference_Data_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-reference-data-database-username.txt
+ - name: Reference_Data_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-reference-data-database-password.txt
+ - name: Sitecore_License
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-license
+ key: sitecore-license.txt
+ - name: Sql_Database_Prefix
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseprefix.txt
+ - name: Sitecore_ConnectionStrings_Xdb.Referencedata
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Referencedata;User ID=$(Reference_Data_Database_Username);Password=$(Reference_Data_Database_Password);
+ livenessProbe:
+ httpGet:
+ path: /healthz/live
+ port: 80
+ httpHeaders:
+ - name: X-Kubernetes-Probe
+ value: Liveness
+ timeoutSeconds: 300
+ periodSeconds: 30
+ failureThreshold: 3
+ startupProbe:
+ httpGet:
+ path: /healthz/ready
+ port: 80
+ httpHeaders:
+ - name: X-Kubernetes-Probe
+ value: Startup
+ timeoutSeconds: 300
+ periodSeconds: 30
+ failureThreshold: 10
+ volumeMounts:
+ - mountPath: C:\inetpub\wwwroot\App_Data\logs
+ name: logs
+ subPath: xdbrefdata
+ resources:
+ requests:
+ memory: 500Mi
+ cpu: 150m
+ limits:
+ memory: 1Gi
+ cpu: 350m
+ volumes:
+ - name: logs
+ persistentVolumeClaim:
+ claimName: logs
+ imagePullSecrets:
+ - name: sitecore-docker-registry
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/xdbsearch.yaml b/sxc/10.3/k8s-commerce-xc1/xdbsearch.yaml
new file mode 100644
index 0000000..33ed21a
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/xdbsearch.yaml
@@ -0,0 +1,156 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: xdbsearch
+spec:
+ selector:
+ app: xdbsearch
+ ports:
+ - protocol: TCP
+ port: 80
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: xdbsearch
+ labels:
+ app: xdbsearch
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: xdbsearch
+ template:
+ metadata:
+ labels:
+ app: xdbsearch
+ spec:
+ nodeSelector:
+ kubernetes.io/os: windows
+ containers:
+ - name: sitecore-xc1-xdbsearch
+ image: sitecore-xc1-xdbsearch
+ ports:
+ - containerPort: 80
+ env:
+ - name: Database_Server
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseservername.txt
+ - name: Messaging_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-messaging-database-username.txt
+ - name: Messaging_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-messaging-database-password.txt
+ - name: Marketing_Automation_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-marketing-automation-database-username.txt
+ - name: Marketing_Automation_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-marketing-automation-database-password.txt
+ - name: Collection_ShardMapManager_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-collection-shardmapmanager-database-username.txt
+ - name: Collection_ShardMapManager_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-collection-shardmapmanager-database-password.txt
+ - name: Processing_Pools_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-processing-pools-database-username.txt
+ - name: Processing_Pools_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-processing-pools-database-password.txt
+ - name: Reference_Data_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-reference-data-database-username.txt
+ - name: Reference_Data_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-reference-data-database-password.txt
+ - name: Sitecore_License
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-license
+ key: sitecore-license.txt
+ - name: Sql_Database_Prefix
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseprefix.txt
+ - name: Sitecore_ConnectionStrings_Messaging
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Messaging;User ID=$(Messaging_Database_Username);Password=$(Messaging_Database_Password);
+ - name: Sitecore_ConnectionStrings_Xdb.Marketingautomation
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Marketingautomation;User ID=$(Marketing_Automation_Database_Username);Password=$(Marketing_Automation_Database_Password);
+ - name: Sitecore_ConnectionStrings_Xdb.Processing.Pools
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Processing.pools;User ID=$(Processing_Pools_Database_Username);Password=$(Processing_Pools_Database_Password);
+ - name: Sitecore_ConnectionStrings_Collection
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Xdb.Collection.ShardMapManager;User ID=$(Collection_ShardMapManager_Database_Username);Password=$(Collection_ShardMapManager_Database_Password);
+ - name: Sitecore_ConnectionStrings_Xdb.Referencedata
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Referencedata;User ID=$(Reference_Data_Database_Username);Password=$(Reference_Data_Database_Password);
+ - name: Sitecore_ConnectionStrings_SolrCore
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-solr-xdb
+ key: sitecore-solr-connection-string-xdb.txt
+ - name: Sitecore_Sitecore__XConnect__CollectionSearch__Services__Solr.SolrReaderSettings__Options__RequireHttps
+ value: 'false'
+ - name: Sitecore_Sitecore__XConnect__CollectionSearch__Services__XConnectSolrHealthCheckServicesConfiguration__Options__RequireHttps
+ value: 'false'
+ livenessProbe:
+ httpGet:
+ path: /healthz/live
+ port: 80
+ httpHeaders:
+ - name: X-Kubernetes-Probe
+ value: Liveness
+ timeoutSeconds: 300
+ periodSeconds: 30
+ failureThreshold: 3
+ startupProbe:
+ httpGet:
+ path: /healthz/ready
+ port: 80
+ httpHeaders:
+ - name: X-Kubernetes-Probe
+ value: Startup
+ timeoutSeconds: 300
+ periodSeconds: 30
+ failureThreshold: 10
+ volumeMounts:
+ - mountPath: C:\inetpub\wwwroot\App_Data\logs
+ name: logs
+ subPath: xdbsearch
+ resources:
+ requests:
+ memory: 500Mi
+ cpu: 150m
+ limits:
+ memory: 1Gi
+ cpu: 350m
+ volumes:
+ - name: logs
+ persistentVolumeClaim:
+ claimName: logs
+ imagePullSecrets:
+ - name: sitecore-docker-registry
\ No newline at end of file
diff --git a/sxc/10.3/k8s-commerce-xc1/xdbsearchworker.yaml b/sxc/10.3/k8s-commerce-xc1/xdbsearchworker.yaml
new file mode 100644
index 0000000..3b72095
--- /dev/null
+++ b/sxc/10.3/k8s-commerce-xc1/xdbsearchworker.yaml
@@ -0,0 +1,104 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: xdbsearchworker
+spec:
+ selector:
+ app: xdbsearchworker
+ ports:
+ - protocol: TCP
+ port: 8080
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: xdbsearchworker
+ labels:
+ app: xdbsearchworker
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: xdbsearchworker
+ template:
+ metadata:
+ labels:
+ app: xdbsearchworker
+ spec:
+ nodeSelector:
+ kubernetes.io/os: windows
+ containers:
+ - name: sitecore-xc1-xdbsearchworker
+ image: sitecore-xc1-xdbsearchworker
+ env:
+ - name: Database_Server
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseservername.txt
+ - name: Collection_ShardMapManager_Database_Username
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-collection-shardmapmanager-database-username.txt
+ - name: Collection_ShardMapManager_Database_Password
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-collection-shardmapmanager-database-password.txt
+ - name: Sitecore_License
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-license
+ key: sitecore-license.txt
+ - name: Sql_Database_Prefix
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseprefix.txt
+ - name: Sitecore_ConnectionStrings_Collection
+ value: Data Source=$(Database_Server);Initial Catalog=$(Sql_Database_Prefix).Xdb.Collection.ShardMapManager;User ID=$(Collection_ShardMapManager_Database_Username);Password=$(Collection_ShardMapManager_Database_Password);
+ - name: Sitecore_ConnectionStrings_SolrCore
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-solr-xdb
+ key: sitecore-solr-connection-string-xdb.txt
+ - name: Sitecore_Sitecore__XConnect__SearchIndexer__Services__Solr.SolrReaderSettings__Options__RequireHttps
+ value: 'false'
+ - name: Sitecore_Sitecore__XConnect__SearchIndexer__Services__Solr.SolrWriterSettings__Options__RequireHttps
+ value: 'false'
+ - name: Sitecore_Sitecore__XConnect__CollectionSearch__Services__XConnectSolrHealthCheckServicesConfiguration__Options__RequireHttps
+ value: 'false'
+ livenessProbe:
+ exec:
+ command:
+ - curl
+ - http://localhost:8080/healthz/live
+ timeoutSeconds: 300
+ periodSeconds: 30
+ failureThreshold: 3
+ startupProbe:
+ exec:
+ command:
+ - curl
+ - http://localhost:8080/healthz/ready
+ timeoutSeconds: 300
+ periodSeconds: 30
+ failureThreshold: 10
+ volumeMounts:
+ - mountPath: C:\service\App_Data\Logs
+ name: logs
+ subPath: xdbsearchworker
+ resources:
+ requests:
+ memory: 400Mi
+ cpu: 50m
+ limits:
+ memory: 1Gi
+ cpu: 300m
+ volumes:
+ - name: logs
+ persistentVolumeClaim:
+ claimName: logs
+ imagePullSecrets:
+ - name: sitecore-docker-registry
\ No newline at end of file
diff --git a/sxc/10.3/postman/Containers - Docker - AdventureWorks.postman_environment.json b/sxc/10.3/postman/Containers - Docker - AdventureWorks.postman_environment.json
new file mode 100644
index 0000000..8163a4b
--- /dev/null
+++ b/sxc/10.3/postman/Containers - Docker - AdventureWorks.postman_environment.json
@@ -0,0 +1,109 @@
+{
+ "id": "43b7338d-bec5-46d2-975d-71831570727d",
+ "name": "Containers - Docker - AdventureWorks",
+ "values": [
+ {
+ "key": "Environment",
+ "value": "AdventureWorksAuthoring",
+ "enabled": true
+ },
+ {
+ "key": "ShopName",
+ "value": "CommerceEngineDefaultStorefront",
+ "enabled": true
+ },
+ {
+ "key": "ShopperId",
+ "value": "ShopperId",
+ "enabled": true
+ },
+ {
+ "key": "Language",
+ "value": "en-US",
+ "enabled": true
+ },
+ {
+ "key": "Currency",
+ "value": "USD",
+ "enabled": true
+ },
+ {
+ "key": "ServiceHost",
+ "value": "{{Protocol}}://authoring.localhost",
+ "enabled": true
+ },
+ {
+ "key": "ShopsApi",
+ "value": "api",
+ "enabled": true
+ },
+ {
+ "key": "OpsApi",
+ "value": "commerceops",
+ "enabled": true
+ },
+ {
+ "key": "OpsApiHost",
+ "value": "{{Protocol}}://ops.localhost",
+ "enabled": true
+ },
+ {
+ "key": "AuthoringHost",
+ "value": "{{Protocol}}://authoring.localhost",
+ "enabled": true
+ },
+ {
+ "key": "MinionsHost",
+ "value": "{{Protocol}}://minions.localhost",
+ "enabled": true
+ },
+ {
+ "key": "ShopsHost",
+ "value": "{{Protocol}}://shops.localhost",
+ "enabled": true
+ },
+ {
+ "key": "SitecoreIdServerHost",
+ "value": "{{Protocol}}://{{Topology}}id.localhost",
+ "enabled": true
+ },
+ {
+ "key": "SitecoreIdServerUserName",
+ "value": "sitecore\\admin",
+ "enabled": true
+ },
+ {
+ "key": "SitecoreIdServerPassword",
+ "value": "Password12345",
+ "enabled": true
+ },
+ {
+ "key": "GeoLocation",
+ "value": "IpAddress=1.0.0.0",
+ "enabled": true
+ },
+ {
+ "key": "MinionsEnvironment",
+ "value": "AdventureWorksMinions",
+ "enabled": true
+ },
+ {
+ "key": "ShopsEnvironment",
+ "value": "AdventureWorksShops",
+ "enabled": true
+ },
+ {
+ "key": "Protocol",
+ "value": "https",
+ "enabled": true
+ },
+ {
+ "key": "Topology",
+ "value": "xc1-cxa",
+ "enabled": true
+ }
+ ],
+ "_postman_variable_scope": "environment",
+ "_postman_exported_at": "2021-08-26T13:56:57.229Z",
+ "_postman_exported_using": "Postman/7.33.1"
+}
\ No newline at end of file
diff --git a/sxc/10.3/postman/Containers - Docker - Habitat.postman_environment.json b/sxc/10.3/postman/Containers - Docker - Habitat.postman_environment.json
new file mode 100644
index 0000000..aff9e01
--- /dev/null
+++ b/sxc/10.3/postman/Containers - Docker - Habitat.postman_environment.json
@@ -0,0 +1,109 @@
+{
+ "id": "4c4a2ac7-6661-45bd-af8b-8221dff506c3",
+ "name": "Containers - Docker - Habitat",
+ "values": [
+ {
+ "key": "Environment",
+ "value": "HabitatAuthoring",
+ "enabled": true
+ },
+ {
+ "key": "ShopName",
+ "value": "CommerceEngineDefaultStorefront",
+ "enabled": true
+ },
+ {
+ "key": "ShopperId",
+ "value": "ShopperId",
+ "enabled": true
+ },
+ {
+ "key": "Language",
+ "value": "en-US",
+ "enabled": true
+ },
+ {
+ "key": "Currency",
+ "value": "USD",
+ "enabled": true
+ },
+ {
+ "key": "ServiceHost",
+ "value": "{{Protocol}}://authoring.localhost",
+ "enabled": true
+ },
+ {
+ "key": "ShopsApi",
+ "value": "api",
+ "enabled": true
+ },
+ {
+ "key": "OpsApi",
+ "value": "commerceops",
+ "enabled": true
+ },
+ {
+ "key": "OpsApiHost",
+ "value": "{{Protocol}}://ops.localhost",
+ "enabled": true
+ },
+ {
+ "key": "AuthoringHost",
+ "value": "{{Protocol}}://authoring.localhost",
+ "enabled": true
+ },
+ {
+ "key": "MinionsHost",
+ "value": "{{Protocol}}://minions.localhost",
+ "enabled": true
+ },
+ {
+ "key": "ShopsHost",
+ "value": "{{Protocol}}://shops.localhost",
+ "enabled": true
+ },
+ {
+ "key": "SitecoreIdServerHost",
+ "value": "{{Protocol}}://{{Topology}}id.localhost",
+ "enabled": true
+ },
+ {
+ "key": "SitecoreIdServerUserName",
+ "value": "sitecore\\admin",
+ "enabled": true
+ },
+ {
+ "key": "SitecoreIdServerPassword",
+ "value": "Password12345",
+ "enabled": true
+ },
+ {
+ "key": "GeoLocation",
+ "value": "IpAddress=1.0.0.0",
+ "enabled": true
+ },
+ {
+ "key": "MinionsEnvironment",
+ "value": "HabitatMinions",
+ "enabled": true
+ },
+ {
+ "key": "ShopsEnvironment",
+ "value": "HabitatShops",
+ "enabled": true
+ },
+ {
+ "key": "Protocol",
+ "value": "https",
+ "enabled": true
+ },
+ {
+ "key": "Topology",
+ "value": "xc1-cxa",
+ "enabled": true
+ }
+ ],
+ "_postman_variable_scope": "environment",
+ "_postman_exported_at": "2021-08-26T13:57:15.691Z",
+ "_postman_exported_using": "Postman/7.33.1"
+}
\ No newline at end of file
diff --git a/sxc/10.3/postman/Containers - K8S - AdventureWorks.postman_environment.json b/sxc/10.3/postman/Containers - K8S - AdventureWorks.postman_environment.json
new file mode 100644
index 0000000..8d820a9
--- /dev/null
+++ b/sxc/10.3/postman/Containers - K8S - AdventureWorks.postman_environment.json
@@ -0,0 +1,99 @@
+{
+ "id": "8fd0f42d-dfd4-4d96-9fdf-d867c753e068",
+ "name": "Containers - K8S - AdventureWorks",
+ "values": [
+ {
+ "key": "Environment",
+ "value": "AdventureWorksAuthoring",
+ "enabled": true
+ },
+ {
+ "key": "ShopName",
+ "value": "CommerceEngineDefaultStorefront",
+ "enabled": true
+ },
+ {
+ "key": "ShopperId",
+ "value": "ShopperId",
+ "enabled": true
+ },
+ {
+ "key": "Language",
+ "value": "en-US",
+ "enabled": true
+ },
+ {
+ "key": "Currency",
+ "value": "USD",
+ "enabled": true
+ },
+ {
+ "key": "ServiceHost",
+ "value": "{{Protocol}}://authoring.globalhost",
+ "enabled": true
+ },
+ {
+ "key": "ShopsApi",
+ "value": "api",
+ "enabled": true
+ },
+ {
+ "key": "OpsApi",
+ "value": "commerceops",
+ "enabled": true
+ },
+ {
+ "key": "AuthoringHost",
+ "value": "{{Protocol}}://authoring.globalhost",
+ "enabled": true
+ },
+ {
+ "key": "MinionsHost",
+ "value": "{{Protocol}}://minions.globalhost",
+ "enabled": true
+ },
+ {
+ "key": "ShopsHost",
+ "value": "{{Protocol}}://shops.globalhost",
+ "enabled": true
+ },
+ {
+ "key": "SitecoreIdServerHost",
+ "value": "{{Protocol}}://id.globalhost",
+ "enabled": true
+ },
+ {
+ "key": "SitecoreIdServerUserName",
+ "value": "sitecore\\admin",
+ "enabled": true
+ },
+ {
+ "key": "SitecoreIdServerPassword",
+ "value": "Password12345",
+ "enabled": true
+ },
+ {
+ "key": "GeoLocation",
+ "value": "IpAddress=1.0.0.0",
+ "enabled": true
+ },
+ {
+ "key": "MinionsEnvironment",
+ "value": "AdventureWorksMinions",
+ "enabled": true
+ },
+ {
+ "key": "ShopsEnvironment",
+ "value": "AdventureWorksShops",
+ "enabled": true
+ },
+ {
+ "key": "Protocol",
+ "value": "https",
+ "enabled": true
+ }
+ ],
+ "_postman_variable_scope": "environment",
+ "_postman_exported_at": "2020-09-03T19:05:15.019Z",
+ "_postman_exported_using": "Postman/7.31.1"
+}
\ No newline at end of file
diff --git a/sxc/10.3/postman/Containers - K8S - Habitat.postman_environment.json b/sxc/10.3/postman/Containers - K8S - Habitat.postman_environment.json
new file mode 100644
index 0000000..6df1f6e
--- /dev/null
+++ b/sxc/10.3/postman/Containers - K8S - Habitat.postman_environment.json
@@ -0,0 +1,99 @@
+{
+ "id": "746941f3-861c-4882-b58f-1ae91cb9234b",
+ "name": "Containers - K8S - Habitat",
+ "values": [
+ {
+ "key": "Environment",
+ "value": "HabitatAuthoring",
+ "enabled": true
+ },
+ {
+ "key": "ShopName",
+ "value": "CommerceEngineDefaultStorefront",
+ "enabled": true
+ },
+ {
+ "key": "ShopperId",
+ "value": "ShopperId",
+ "enabled": true
+ },
+ {
+ "key": "Language",
+ "value": "en-US",
+ "enabled": true
+ },
+ {
+ "key": "Currency",
+ "value": "USD",
+ "enabled": true
+ },
+ {
+ "key": "ServiceHost",
+ "value": "{{Protocol}}://authoring.globalhost",
+ "enabled": true
+ },
+ {
+ "key": "ShopsApi",
+ "value": "api",
+ "enabled": true
+ },
+ {
+ "key": "OpsApi",
+ "value": "commerceops",
+ "enabled": true
+ },
+ {
+ "key": "AuthoringHost",
+ "value": "{{Protocol}}://authoring.globalhost",
+ "enabled": true
+ },
+ {
+ "key": "MinionsHost",
+ "value": "{{Protocol}}://minions.globalhost",
+ "enabled": true
+ },
+ {
+ "key": "ShopsHost",
+ "value": "{{Protocol}}://shops.globalhost",
+ "enabled": true
+ },
+ {
+ "key": "SitecoreIdServerHost",
+ "value": "{{Protocol}}://id.globalhost",
+ "enabled": true
+ },
+ {
+ "key": "SitecoreIdServerUserName",
+ "value": "sitecore\\admin",
+ "enabled": true
+ },
+ {
+ "key": "SitecoreIdServerPassword",
+ "value": "Password12345",
+ "enabled": true
+ },
+ {
+ "key": "GeoLocation",
+ "value": "IpAddress=1.0.0.0",
+ "enabled": true
+ },
+ {
+ "key": "MinionsEnvironment",
+ "value": "HabitatMinions",
+ "enabled": true
+ },
+ {
+ "key": "ShopsEnvironment",
+ "value": "HabitatShops",
+ "enabled": true
+ },
+ {
+ "key": "Protocol",
+ "value": "https",
+ "enabled": true
+ }
+ ],
+ "_postman_variable_scope": "environment",
+ "_postman_exported_at": "2020-09-03T19:05:16.788Z",
+ "_postman_exported_using": "Postman/7.31.1"
+}
\ No newline at end of file
diff --git a/sxc/10.3/scripts/CleanContainerCache.ps1 b/sxc/10.3/scripts/CleanContainerCache.ps1
new file mode 100644
index 0000000..778015a
--- /dev/null
+++ b/sxc/10.3/scripts/CleanContainerCache.ps1
@@ -0,0 +1,65 @@
+<#
+.SYNOPSIS
+Cleans the container images cache on a Windows machine. Presumes the default location of Docker Desktop installation.
+
+.DESCRIPTION
+Cleans the container images cache on a Windows machine. Presumes the default installation location of C:\ProgramData\docker\windowsfilter\
+for Docker Desktop cache.
+
+No parameters required.
+
+.EXAMPLE
+CleanContainerCache.ps1
+#>
+
+#Swallow all the errors
+function CleanCache {
+ Invoke-Command -Script {
+ $ErrorActionPreference="silentlycontinue"
+ & docker rmi $allImages --force 2>&1 > $null | Out-Null
+ } -ErrorAction SilentlyContinue | Out-Null -ErrorAction SilentlyContinue
+}
+
+Write-Host "=======================CACHE INFO============================"
+Write-host "Count of images:"((& docker image ls -a | Measure-Object).Count -1)
+Write-Host "Count of cache directories:"(Get-ChildItem -path C:\ProgramData\docker\windowsfilter\ -force | Measure-Object).Count
+Write-Host "Diskspace used:"
+& docker system df
+Write-Host "=============================================================`n"
+
+Write-Host "==============STOPPING RUNNING CONTAINERS===================="
+$runningContainers = docker ps -a -q
+if ($null -ne $runningContainers){
+ & docker stop $runningContainers
+ & docker rm $runningContainers
+}
+Write-Host "============================================================`n"
+
+Write-Host "=====================CLEANING CACHE========================="
+$allImages = docker images -a -q
+if ($null -ne $allImages){
+ #Try/catch to swallow the writes to stderr, if there are errors,
+ #write warnings
+ try {
+ & docker images -a -q
+ CleanCache
+ } catch {
+ Write-Warning "Warnings: `n"
+ Format-list * -InputObject $_ -Force
+ } finally {
+ Write-Host "Finished"
+ }
+}
+Write-Host "=============================================================`n"
+
+Write-Host "======================PRUNING SYSTEM========================="
+Write-Host 'docker system prune -a -f'
+docker system prune -a -f
+Write-Host "============================================================="
+
+Write-Host "=======================CACHE INFO============================"
+Write-host "Count of images:"((docker image ls -a | Measure-Object).Count -1)
+Write-Host "Count of cache directories:"(Get-ChildItem -path C:\ProgramData\docker\windowsfilter\ -force | Measure-Object).Count
+Write-Host "Diskspace used:"
+docker system df
+Write-Host "============================================================="
diff --git a/sxc/10.3/scripts/ComposeInit.ps1 b/sxc/10.3/scripts/ComposeInit.ps1
new file mode 100644
index 0000000..3d91a73
--- /dev/null
+++ b/sxc/10.3/scripts/ComposeInit.ps1
@@ -0,0 +1,437 @@
+[CmdletBinding()]
+Param (
+ [ValidateSet("xc0","xc1-cxa")]
+ [string] $Topology = "xc1-cxa",
+
+ [ValidateNotNullOrEmpty()]
+ [string] $EnvFilePath = "..\$($Topology)\.env",
+
+ [Parameter(Mandatory = $true)]
+ [ValidateNotNullOrEmpty()]
+ [string] $LicenseXmlPath,
+
+ # We do not need to use [SecureString] here since the value will be stored unencrypted in .env,
+ # and used only for transient local example environment.
+ [string] $SitecoreAdminPassword = "Password12345",
+
+ # We do not need to use [SecureString] here since the value will be stored unencrypted in .env,
+ # and used only for transient local example environment.
+ [string] $SqlSaPassword = "Password12345",
+
+ [string] $SqlServer = "mssql",
+
+ [string] $SqlUserName = "sa",
+
+ [string] $CdHost = "$($Topology)cd.localhost",
+
+ [string] $CmHost = "$($Topology)cm.localhost",
+
+ [string] $IdHost = "$($Topology)id.localhost",
+
+ [string] $BizFxHost = "bizfx.localhost",
+
+ [string] $AuthoringHost = "authoring.localhost",
+
+ [string] $ShopsHost = "shops.localhost",
+
+ [string] $MinionsHost = "minions.localhost",
+
+ [string] $SitecoreGalleryRepositoryLocation = "https://sitecore.myget.org/F/sc-powershell/api/v2",
+
+ [string] $TraefikFolder = "..\$($Topology)\traefik",
+
+ [string] $RootCertName = "Sitecore Docker Compose Development Self-Signed Authority",
+
+ [string] $BraintreeEnvironment,
+
+ [string] $BraintreeMerchantId,
+
+ [string] $BraintreePublicKey,
+
+ [string] $BraintreePrivateKey,
+
+ [ValidateSet("default", "process", "hyperv")]
+ [string] $Isolation = "process",
+
+ [string] $DockerToolsVersion
+)
+
+<#
+.SYNOPSIS
+Script to facilitate the updating of the .env files for use with docker-compose and required initialization of certificates and hosts entires
+
+.PARAMETER Topology
+[ValidateSet("xc0","xc1-cxa")]
+The topology to deploy. Parameter is used to determine paths to other locations (.env file, certificates)
+
+.PARAMETER EnvFilePath
+The path to the parent (root) directory containg the .env file for the specified topology. Default is to use the topology to determine path.
+
+.PARAMETER LicenseXmlPath
+[Parameter(Mandatory)]
+Sitecore license file xml path
+
+.PARAMETER SitecoreAdminPassword
+The admin password for sitecore
+
+.PARAMETER SqlSaPassword
+The SQL sa password
+
+.PARAMETER SqlServer
+The SQL server
+
+.PARAMETER SqlUserName
+The SQL sa username
+
+.PARAMETER CdHost
+The host name for the CD site
+
+.PARAMETER CmHost
+The host name for the cm site
+
+.PARAMETER IdHost
+The host name for the identity server
+
+.PARAMETER BizFxHost
+The host name for the commerce business tools site
+
+.PARAMETER AuthoringHost
+The host name for the commerce engine authoring service
+
+.PARAMETER ShopsHost
+The host name for the commerce engine shops service
+
+.PARAMETER MinionsHost
+The host name for the commerce engine minions service
+
+.PARAMETER SitecoreGalleryRepositoryLocation
+Sitecore Gallery repository location. Default is https://sitecore.myget.org/F/sc-powershell/api/v2
+
+.PARAMETER TraefikFolder
+Path to the traefik folder. Default is to use the topology to determine path.
+
+.PARAMETER CommonName
+The name of the root certificate as it will be displayed in windows certificate manager
+
+.PARAMETER BraintreeEnvironment
+The Braintree environment. E.G. sandbox or production
+
+.PARAMETER BraintreeMerchantId
+Your merchant ID for the Braintreepayment provider.
+
+.PARAMETER BraintreePublicKey
+The public key associated to your Braintree account.
+
+.PARAMETER BraintreePrivateKey
+The private key associated to your Braintree account.
+
+.PARAMETER Isolation
+[ValidateSet("default", "process", "hyperv")]
+Choose the isolation method. default will use the default method determiend by the OS, process will force process isolation, hyperv wil force hyperv isolation.
+To improve performance it is recommened to use "process" as isolation method for Windows 10 as default is hyperv.
+
+.PARAMETER DockerToolsVersion
+The version of the Sitecore Docker Tools to use
+
+.EXAMPLE
+Example of the required parameters if default values are appropriate
+PS> ComposeInit.ps1 -licenseXmlPath "Location of your licence file" `
+ -braintreeEnvironment "sandbox" `
+ -braintreeMerchantId "Your merchant id" `
+ -braintreePublicKey "Your public key" `
+ -braintreePrivateKey "Your private key"
+#>
+
+$ErrorActionPreference = "Stop";
+[boolean]$RootCertificateCreated = $false;
+
+function Get-EnvironmentVariableNameList {
+ param(
+ [string]$EnvFilePath
+ )
+
+ $envVariableNameList = @()
+ $envVariables = Get-Content -Path $EnvFilePath
+ foreach ($envVariable in $envVariables) {
+ $envName = $envVariable.Split('=')[0]
+ $envVariableNameList += $envName
+ }
+ return $envVariableNameList
+}
+
+function Populate-EnvironmentFile {
+ param(
+ [string]$EnvFilePath,
+ [hashtable]$EnvVariablesTable
+ )
+
+ Write-Information -MessageData "Starting populating '$EnvFilePath' env file variables..." -InformationAction Continue
+
+ $envVariableNameList = Get-EnvironmentVariableNameList -EnvFilePath $EnvFilePath
+ foreach ($envVariableName in $envVariableNameList){
+ if ($EnvVariablesTable.ContainsKey($envVariableName)) {
+ Set-EnvFileVariable $envVariableName -Value $($EnvVariablesTable[$envVariableName]) -Path $EnvFilePath
+ }
+ }
+
+ Write-Information -MessageData "Finish populating '$EnvFilePath' env file variables." -InformationAction Continue
+}
+
+function Add-WindowsHostsFileEntries {
+ param(
+ [string]$EnvFilePath,
+ [string]$Topology,
+ [string]$CdHost,
+ [string]$CmHost,
+ [string]$IdHost,
+ [string]$BizFxHost,
+ [string]$AuthoringHost,
+ [string]$ShopsHost,
+ [string]$MinionsHost
+ )
+
+ Write-Information -MessageData "Starting adding Windows hosts file entries for '$Topology' topology..." -InformationAction Continue
+
+ Add-HostsEntry "$CmHost"
+ Add-HostsEntry "$IdHost"
+ if ($Topology -eq "xc1-cxa") {
+ Add-HostsEntry "$CdHost"
+ }
+ Add-HostsEntry "$BizFxHost"
+ Add-HostsEntry "$AuthoringHost"
+ Add-HostsEntry "$ShopsHost"
+ Add-HostsEntry "$MinionsHost"
+
+ Write-Information -MessageData "Finish adding Windows hosts file entries for '$Topology' topology." -InformationAction Continue
+}
+
+function Create-Certificates {
+ param(
+ [string]$TraefikFolder,
+ [string]$Topology,
+ [string]$CdHost,
+ [string]$CmHost,
+ [string]$IdHost,
+ [string]$BizFxHost,
+ [string]$AuthoringHost,
+ [string]$ShopsHost,
+ [string]$MinionsHost
+ )
+
+ Write-Information -MessageData "Starting create certificates for '$Topology' topology..." -InformationAction Continue
+
+ $dnsNames = @("$CdHost", "$CmHost", "$IdHost", "$BizFxHost", "$AuthoringHost", "$ShopsHost", "$MinionsHost")
+
+ if ($Topology -eq "xc0") {
+ $dnsNames = @("$CmHost", "$IdHost", "$BizFxHost", "$AuthoringHost", "$ShopsHost", "$MinionsHost")
+ }
+
+ # Check that Certificate or Key files already exist in the $CertDataFolder
+ $CertDataFolder = "$TraefikFolder\certs"
+ $existingCertificateFiles = Get-ChildItem "$CertDataFolder\*" -Include *.crt, *.key
+
+ if (-not $existingCertificateFiles){
+
+ # Create Root Certificate file
+ $rootKey = Create-RSAKey -KeyLength 4096
+ $rootCertificate = Create-SelfSignedCertificate -Key $rootKey -CommonName $RootCertName
+ Create-CertificateFile -Certificate $rootCertificate -OutCertPath "$CertDataFolder\root-ca.crt"
+
+ # Create Certificate and Key files for each Sitecore role
+ $dnsNames | ForEach-Object {
+ $selfSignedKey = Create-RSAKey
+ $certificate = Create-SelfSignedCertificateWithSignature -Key $selfSignedKey -CommonName $_ -DnsName $_ -RootCertificate $rootCertificate
+ Create-KeyFile -Key $selfSignedKey -OutKeyPath "$CertDataFolder\$_.key"
+ Create-CertificateFile -Certificate $certificate -OutCertPath "$CertDataFolder\$_.crt"
+ }
+
+ Write-Information -MessageData "Finish creating certificates for '$Topology' topology." -InformationAction Continue
+
+ return $true
+ }
+ else {
+ Write-Information -MessageData "Certificate files already exist for '$Topology' topology." -InformationAction Continue
+ return $false
+ }
+}
+
+function Update-CertsConfigFile {
+
+ param(
+ [string]$TraefikFolder,
+ [string]$Topology,
+ [string]$CdHost,
+ [string]$CmHost,
+ [string]$IdHost,
+ [string]$BizFxHost,
+ [string]$AuthoringHost,
+ [string]$ShopsHost,
+ [string]$MinionsHost
+ )
+
+ Write-Information -MessageData "Updating certs_config.yaml file." -InformationAction Continue
+
+ $certsConfigFile = (Get-ChildItem "$TraefikFolder\config\dynamic\certs_config.yaml").FullName
+ $certificatePath = "C:\etc\traefik\certs\"
+
+ $customHostNames = @("$CdHost", "$CmHost", "$IdHost", "$BizFxHost", "$AuthoringHost", "$ShopsHost", "$MinionsHost")
+ if ($Topology -eq "xc0") {
+ $customHostNames = @("$CmHost", "$IdHost", "$BizFxHost", "$AuthoringHost", "$ShopsHost", "$MinionsHost")
+ }
+
+ $newFileContent = @("tls:", " certificates:")
+ foreach ($customHostName in $customHostNames) {
+ $newFileContent += " - certFile: " + $certificatePath + $customHostName + ".crt"
+ $newFileContent += " keyFile: " + $certificatePath + $customHostName + ".key"
+ }
+
+ # Clear certs_config.yaml file
+ Clear-Content -Path $certsConfigFile
+
+ # Setting new content to the certs_config.yaml file
+ $newFileContent | Set-Content $certsConfigFile
+
+ Write-Information -MessageData "certs_config.yaml file was successfully updated." -InformationAction Continue
+}
+
+function InstallModule {
+ param(
+ [string]$ModuleName,
+ [string]$ModuleVersion,
+ [string]$RepositoryName
+ )
+
+ $moduleInstalled = Get-InstalledModule -Name $ModuleName -RequiredVersion $ModuleVersion -AllowPrerelease -ErrorAction SilentlyContinue
+ if (-not $moduleInstalled) {
+ Write-Host "Installing '$ModuleName' with version $ModuleVersion" -ForegroundColor Green
+ Install-Module -Name $ModuleName -RequiredVersion $ModuleVersion -AllowPrerelease -Repository $RepositoryName -Scope CurrentUser
+ }
+}
+
+Function Confirm-VolumeFoldersExist {
+ param (
+ [string] $Path
+ )
+ Write-Host "Verifying Folders for Commerce Engine volumes exist in [$Path]"
+
+ "cm\domains-shared",
+ "cd\domains-shared",
+ "engine\catalogs",
+ "mssql-data",
+ "solr-data" |
+ ForEach-Object {
+ if (-Not (Test-Path (Join-Path $Path $_))) {
+ Write-Verbose "Creating folder [$_]"
+ New-Item -Path $Path -Name $_ -ItemType Directory
+ }
+ }
+}
+
+if (-not (Test-Path $LicenseXmlPath)) {
+ throw "Did not find $LicenseXmlPath"
+}
+if (-not (Test-Path $LicenseXmlPath -PathType Leaf)) {
+ throw "$LicenseXmlPath is not a file"
+}
+
+# Check for Sitecore Gallery
+Import-Module PowerShellGet
+$SitecoreGallery = Get-PSRepository | Where-Object { $_.SourceLocation -eq $SitecoreGalleryRepositoryLocation }
+if (-not $SitecoreGallery) {
+ Write-Host "Adding Sitecore PowerShell Gallery..." -ForegroundColor Green
+ Register-PSRepository -Name SitecoreGallery -SourceLocation $SitecoreGalleryRepositoryLocation -InstallationPolicy Trusted
+ $SitecoreGallery = Get-PSRepository -Name SitecoreGallery
+}
+
+# Install and Import SitecoreDockerTools
+$moduleName = "SitecoreDockerTools"
+$repositoryName = $SitecoreGallery.Name
+
+$module = Find-Module -Name $moduleName -Repository $repositoryName
+$latestVersion = $module.Version
+$importModuleCommand = "Import-Module $moduleName -RequiredVersion $latestVersion"
+
+if(![string]::IsNullOrEmpty($DockerToolsVersion)){
+ $module = Find-Module -Name $moduleName -Repository $repositoryName -RequiredVersion $DockerToolsVersion -AllowPrerelease
+ $latestVersion = $module.Version
+
+ if([string]::IsNullOrEmpty($latestVersion)){
+ Write-Warning -Message "'$moduleName' module with '$DockerToolsVersion' version doesn't exist."
+ return
+ }
+ InstallModule -ModuleName $moduleName -ModuleVersion $latestVersion -RepositoryName $repositoryName
+
+ $modulePath = ((Get-Module $moduleName -ListAvailable) | where Version -eq $latestVersion.Split("-")[0]).Path
+ $importModuleCommand = "Import-Module -Name $modulePath"
+}else {
+ InstallModule -ModuleName $moduleName -ModuleVersion $latestVersion -RepositoryName $repositoryName
+}
+
+Write-Host "Importing '$moduleName'..." -ForegroundColor Green
+Invoke-Expression $importModuleCommand
+
+$idCertPassword = Get-SitecoreRandomString 12 -DisallowSpecial
+$envVariablesTable = @{
+ "SITECORE_ADMIN_PASSWORD" = $SitecoreAdminPassword
+ "SQL_SA_PASSWORD" = $SqlSaPassword
+ "REPORTING_API_KEY" = "00112233445566778899AABBCCDDEEFF"
+ "TELERIK_ENCRYPTION_KEY" = Get-SitecoreRandomString 128 -DisallowSpecial
+ "MEDIA_REQUEST_PROTECTION_SHARED_SECRET" = Get-SitecoreRandomString 64 -DisallowSpecial
+ "SITECORE_IDSECRET" = Get-SitecoreRandomString 64 -DisallowSpecial
+ "SITECORE_ID_CERTIFICATE" = (Get-SitecoreCertificateAsBase64String -DnsName "localhost" -Password (ConvertTo-SecureString -String $idCertPassword -Force -AsPlainText) -KeyLength 2048)
+ "SITECORE_ID_CERTIFICATE_PASSWORD" = $idCertPassword
+ "SITECORE_LICENSE" = ConvertTo-CompressedBase64String -Path $LicenseXmlPath
+ "SQL_SERVER" = $SqlServer
+ "SQL_USERNAME" = $SqlUserName
+ "SQL_PASSWORD" = $SqlSaPassword
+ "CD_HOST" = $CdHost
+ "CM_HOST" = $CmHost
+ "ID_HOST" = $IdHost
+ "SITECORE_GRAPHQL_UPLOADMEDIAOPTIONS_ENCRYPTIONKEY" = Get-SitecoreRandomString 16 -DisallowSpecial
+ "BIZFX_HOST" = $BizFxHost
+ "AUTHORING_HOST" = $AuthoringHost
+ "SHOPS_HOST" = $ShopsHost
+ "MINIONS_HOST" = $MinionsHost
+ "XC_ENGINE_BRAINTREEENVIRONMENT" = $BraintreeEnvironment
+ "XC_ENGINE_BRAINTREEMERCHANTID" = $BraintreeMerchantId
+ "XC_ENGINE_BRAINTREEPUBLICKEY" = $BraintreePublicKey
+ "XC_ENGINE_BRAINTREEPRIVATEKEY" = $BraintreePrivateKey
+ "XC_IDENTITY_COMMERCEENGINECONNECTCLIENT_CLIENTSECRET1" = Get-SitecoreRandomString 12 -DisallowSpecial
+ "ISOLATION" = $Isolation
+}
+
+$envFile = Split-Path $EnvFilePath -Leaf
+
+if($envFile -eq "upgrade.env") {
+ # Populate the environment file
+ Populate-EnvironmentFile -EnvFilePath $EnvFilePath -EnvVariablesTable $envVariablesTable
+}else {
+ if (!(Test-Path $TraefikFolder)) {
+ Write-Warning -Message "The certificate '$TraefikFolder' path isn't valid. Please, specify another path for certificates."
+ return
+ }
+
+ # Populate the environment file
+ Populate-EnvironmentFile -EnvFilePath $EnvFilePath -EnvVariablesTable $envVariablesTable
+
+ # Configure TLS/HTTPS certificates
+ $RootCertificateCreated = Create-Certificates -TraefikFolder "$TraefikFolder" -Topology $Topology -CdHost $CdHost -CmHost $CmHost -IdHost $IdHost -BizFxHost $BizFxHost -AuthoringHost $AuthoringHost -ShopsHost $ShopsHost -MinionsHost $MinionsHost
+
+ # The update for the certs_config.yaml file is if Certificates were created for the custom hostnames.
+ if ($RootCertificateCreated) {
+ Update-CertsConfigFile -TraefikFolder $TraefikFolder -Topology $Topology -CdHost $CdHost -CmHost $CmHost -IdHost $IdHost -BizFxHost $BizFxHost -AuthoringHost $AuthoringHost -ShopsHost $ShopsHost -MinionsHost $MinionsHost
+ }
+
+ # Install Root Certificate if it was created
+ if ($RootCertificateCreated) {
+ Write-Information -MessageData "Importing certificate" -InformationAction Continue
+ Import-Certificate -FilePath "$TraefikFolder\certs\root-ca.crt" -CertStoreLocation "Cert:\LocalMachine\Root"
+ Write-Information -MessageData "Importing certificate complete" -InformationAction Continue
+ }
+
+ # Add Windows hosts file entries
+ Add-WindowsHostsFileEntries -EnvFilePath $EnvFilePath -Topology $Topology -CdHost $CdHost -CmHost $CmHost -IdHost $IdHost -BizFxHost $BizFxHost -AuthoringHost $AuthoringHost -ShopsHost $ShopsHost -MinionsHost $MinionsHost
+
+ # Creates volumes folders in the host
+ Confirm-VolumeFoldersExist -Path "C:\containers"
+}
\ No newline at end of file
diff --git a/sxc/10.3/scripts/ContainerBuild.ps1 b/sxc/10.3/scripts/ContainerBuild.ps1
new file mode 100644
index 0000000..ad3dccb
--- /dev/null
+++ b/sxc/10.3/scripts/ContainerBuild.ps1
@@ -0,0 +1,39 @@
+[cmdletbinding()]
+param(
+ [string]$envRootPath = (Join-Path $PWD "..")
+)
+<#
+.SYNOPSIS
+Script to facilitate the creation of container images via docker-compose build. The artifacts produced are ImageName:latest,
+where ImageName comes from the docker-compose.build.yml files.
+
+.PARAMETER envRootPath
+The path to the parent (root) directory containing the .env files. If C:\download\XC\xc0 and C:\download\XC\xc1
+contain .env files, then the envRootPath is C:\download\XC. Changes are performed in place
+Default path is ../
+
+.EXAMPLE
+ContainerBuild.ps1 -envRootPath (Join-Path $PWD "..")
+#>
+
+if (!(Get-Module -Name "powershell-yaml" -ListAvailable)){
+ $r = Get-PSRepository
+ Install-Module -Name "powershell-yaml" -Repository $r.name -Force
+}
+
+Get-ChildItem -Path "$envRootPath" -Include 'docker-compose.build.yml' -Recurse |
+ ForEach-Object {
+ $workingDir = Split-Path $_.FullName -Parent
+
+ Push-Location -Path $workingDir
+
+ '[Building containers for] {0}' -f $PWD
+ Write-Host "docker-compose --no-ansi --file (Join-Path $workingDir 'docker-compose.build.yml') build --parallel"
+ & docker-compose --no-ansi -f (Join-Path $workingDir 'docker-compose.build.yml') build --parallel
+
+ if ($LASTEXITCODE -gt 0) {
+ Throw "Error in docker-compose build."
+ }
+
+ Pop-Location
+ }
diff --git a/sxc/10.3/scripts/ContainerTag.ps1 b/sxc/10.3/scripts/ContainerTag.ps1
new file mode 100644
index 0000000..d52231e
--- /dev/null
+++ b/sxc/10.3/scripts/ContainerTag.ps1
@@ -0,0 +1,74 @@
+[cmdletbinding()]
+param(
+ [string]$envRootPath = (Join-Path $PWD ".."),
+ [Parameter(Mandatory)]
+ [string]$tag,
+ [switch]$keepSourceTag
+)
+
+<#
+.SYNOPSIS
+Script to facilitate the tagging of container images via docker-compose build.
+
+.PARAMETER envRootPath
+The path to the parent (root) directory containing the .env files. If C:\download\XC\xc0 and C:\download\XC\xc1
+contain .env files, then the envRootPath is C:\download\XC. Changes are performed in place
+Default path is ../
+
+.PARAMETER tag
+[Parameter(Mandatory)]
+This is the tag for your docker container image. Typically it includes:
+Repository -> ideftdevacr.azurecr.io
+Namespace -> experimental
+Image Name -> sitecore-xc-engine, found in the build yml files
+Version -> 10.2.0-ltsc2019, a version identifier. This can be anything you like
+ Be aware that there can only ever be one. If you have a version 10.2.0-ltsc2019 then this will only ever point to one
+ 'container'. If you tag another container image with 10.2.0-ltsc2019, the old one is lost.
+
+.PARAMETER keepSourceTag
+A degug switch to prevent the removal of the 'latest' tag allowing for multiple runs with out rebuilding the container images.
+
+.EXAMPLE
+ContainerTag.ps1 -envRootPath (Join-Path $PWD "..") `
+ -tag "ideftdevacr.azurecr.io/experimental/sitecore-xc-engine:10.2.0-ltsc2019"
+#>
+
+if (!(Get-Module -Name "powershell-yaml" -ListAvailable)){
+ $r = Get-PSRepository
+ Install-Module -Name "powershell-yaml" -Repository $r.name -Force
+}
+
+$ymlFiles = Get-ChildItem -Path "$envRootPath" -Include 'docker-compose.build.yml' -Recurse
+ForEach ($ymlFile in $ymlFiles ) {
+ $workingDir = Split-Path $ymlFile.FullName -Parent
+ Push-Location -Path $workingDir
+ $buildYaml = Get-Content $ymlFile.FullName | Out-String | ConvertFrom-Yaml
+ foreach ($service in $buildYaml.services.values) {
+ $dockerRepository = $service.image
+
+ Write-Host "Docker Repository: $dockerRepository" -InformationAction Continue
+
+ $sourceTag = "$($dockerRepository):latest"
+ foreach ($tag in $tags) {
+ Write-Host "Tagging: $sourceTag with $tag" -InformationAction Continue
+ & docker image tag $sourceTag $tag
+
+ if ($LASTEXITCODE -gt 0){
+ Throw "Error in docker.exe tagging."
+ }
+ }
+
+ if ($keepSourceTag) {
+ Write-Host "Keeping Tag: $sourceTag" -InformationAction Continue
+ } else {
+ Write-Host "Removing Tag: $sourceTag" -InformationAction Continue
+ & docker rmi $sourceTag
+
+ if ($LASTEXITCODE -gt 0){
+ Throw "Error removing docker tag."
+ }
+ }
+ }
+
+ Pop-Location
+}
diff --git a/sxc/10.3/scripts/PrepEngineContainerBuild.ps1 b/sxc/10.3/scripts/PrepEngineContainerBuild.ps1
new file mode 100644
index 0000000..f86f900
--- /dev/null
+++ b/sxc/10.3/scripts/PrepEngineContainerBuild.ps1
@@ -0,0 +1,114 @@
+[cmdletbinding()]
+param(
+
+ [string]$wdpPath = '.'
+)
+<#
+.SYNOPSIS
+Uses the following packages to prepare artifacts for building Commerce Engine and BizFx container images.
+- Sitecore.Commerce.Engine.OnPrem.Solr
+- Sitecore.BizFx.OnPrem
+
+.DESCRIPTION
+Takes the Sitecore.Commerce.Engine.OnPrem.Solr and Sitecore.BizFx.OnPrem WDP's and expands the contents in to the
+structure expected by the Sitecore XC container Docker files.
+
+.PARAMETER wdpPath
+Path to the location of the WDP files downloaded from dev.sitecore.net.
+
+.EXAMPLE
+PrepEngineContainerbuild.ps1
+
+Expands the wdp files in to the respective container directories. Presumes the wdp files are located
+in the same directory as this script.
+
+.EXAMPLE
+PrepEngineContainerbuild.ps1 -wdpPath 'C:\src\Commerce.Containers\downloads'
+
+Expands the wdp files in to the respective container directories. The wdp files are located in
+the C:\src\Commerce.Containers\downloads directory.
+#>
+
+# the following information will be used to expand the wdps during this script execution.
+$enginePackages = @"
+[
+ {
+ "WDPs": [
+ "Sitecore.Commerce.Engine.OnPrem.Solr"
+ ],
+ "SourceFolder": "Content/Website",
+ "DestinationFolder": [ "xc-common/engine/wdp" ]
+ },
+ {
+ "WDPs": [
+ "Sitecore.BizFx.OnPrem"
+ ],
+ "SourceFolder": "Content/Website",
+ "DestinationFolder": [ "xc-common/bizfx/wdp" ]
+ }
+]
+"@
+
+Write-Host "Expanding of Commerce Engine content started."
+
+#Create a tmpDir
+Write-Host "Creating temp directory"
+$tmpDir = (Join-Path $PSScriptRoot 'tmp')
+if (!(Test-Path $tmpDir)){
+ New-Item -Path $tmpDir -ItemType Directory | Out-Null
+} else {
+ Remove-Item -Path $tmpDir -Recurse -Force
+ New-Item -Path $tmpDir -ItemType Directory | Out-Null
+}
+
+#Cleanup in case this is run multiple times
+$json = $enginePackages | ConvertFrom-Json
+foreach ($j in $json) {
+ Write-Host "Processing Cleanup" $j.DestinationFolder
+ foreach($dest in $j.DestinationFolder) {
+ #Delete the folder that hold the contents of the WDP files prior to starting in case it was run before
+ $destinationFolder = Join-Path (Resolve-Path -Path "$PSScriptRoot\..") $dest
+ if ((Test-Path $destinationFolder)){
+ Remove-Item -Path $destinationFolder -Recurse -Force
+ }
+ }
+}
+
+#Process the contents of the WDP
+$json = $enginePackages | ConvertFrom-Json
+foreach ($j in $json) {
+ Write-Host "Processing" $j.DestinationFolder
+
+ #Expand the wdp(s) and copy the contents to the destination directory
+ foreach($wdp in $j.WDPs)
+ {
+ #first look for *.scwdp' files with the required WDP name, then if not found a non-scwdp file.
+ $wFile = $wdp + '*.scwdp.zip'
+ $wdpFile = Get-ChildItem -Path $wdpPath -Filter $wFile -Recurse | Sort-Object | Select-Object -First 1
+ if (!$wdpFile) {
+ $wFile = $wdp + '*.zip'
+ $wdpFile = Get-ChildItem -Path $wdpPath -Filter $wFile -Recurse | Sort-Object | Select-Object -First 1
+ }
+
+ #WDP file found
+ if (Test-Path $wdpFile.FullName) {
+ $expandFolder = (Join-Path (Join-Path $tmpDir "$($wdpfile.BaseName)") "wdp")
+ Write-Host "Expanding" $wdpfile.FullName "to" $expandFolder -ForegroundColor Yellow
+ Expand-Archive -Path $wdpfile.FullName -DestinationPath $expandFolder -Force
+ foreach($dest in $j.DestinationFolder) {
+ #Create a folder to hold the contents of the WDP files that will be copied in to the container image via the Dockerfile
+ $destinationFolder = Join-Path (Resolve-Path -Path "$PSScriptRoot\..") $dest
+ if (!(Test-Path $destinationFolder)){
+ New-Item -Path $destinationFolder -ItemType Directory | Out-Null
+ }
+
+ Write-Host -Message ("Copying folder {0}\{1} to {2}" -f $expandFolder, $j.SourceFolder, $destinationFolder) -ForegroundColor Yellow
+ Copy-Item -Path (Join-Path (Join-Path $expandFolder $j.SourceFolder) "*") -Destination $destinationFolder -Recurse -Force
+ }
+ } else {
+ throw "No Matching WDP file found: $wdp"
+ }
+ }
+}
+
+Write-Host "Expanding of Commerce Engine content complete."
\ No newline at end of file
diff --git a/sxc/10.3/scripts/UpdateEnvTag.ps1 b/sxc/10.3/scripts/UpdateEnvTag.ps1
new file mode 100644
index 0000000..6e7f7bb
--- /dev/null
+++ b/sxc/10.3/scripts/UpdateEnvTag.ps1
@@ -0,0 +1,130 @@
+[cmdletbinding()]
+param(
+ [string]$jsonFile = (Join-Path '.' 'configltsc2019.json'),
+ [string]$envRootPath = (Join-Path $PWD ".."),
+ [string]$altRegistry = '',
+ [string]$enginePort = '5000',
+ [switch]$useLocalImages
+)
+<#
+.SYNOPSIS
+Script to facilitate updating the .env files for use in a docker-compose up and docker-compose build.
+
+.PARAMETER jsonFile
+The path to the configltsc2019.json file.
+Default path is .\configltsc2019.json
+
+.PARAMETER envRootPath
+The path to the parent (root) directory containg the .env files. If C:\download\XC\xc0 and C:\download\XC\xc1
+contain .env files, then the envRootPath is C:\download\XC. Changes are performed in place
+Default path is ..
+
+.PARAMETER altRegistry
+Overrides the registry value from the config json
+Default is null
+
+.PARAMETER enginePort
+Overrides the engine port in case of local dev deployment
+Default is 5000
+
+.PARAMETER useLocalImages
+A switch to indicate whether latest local images should be used for container deployment.
+If specified, XC_SITECORE_DOCKER_REGISTRY parameter will be cleared and XC_PACKAGES_TAG parameter will be set to 'latest'.
+
+.EXAMPLE
+UpdateEnvTag.ps1 -jsonFile 'C:\download\Commerce.Containers\scripts\configltsc2019.json' `
+ -envRootPath (Join-Path $PWD "..")
+#>
+
+if (Test-Path("$jsonFile")) {
+
+ #Read the config json that holds the values to be used to populate the environment files
+ $json = Get-Content $jsonFile | Out-String | ConvertFrom-Json
+ $containerConfigInfo = @{}
+ foreach( $property in $json.psobject.properties.name )
+ {
+ $containerConfigInfo[$property] = $json.$property
+ }
+
+ if ([string]::IsNullOrEmpty($altRegistry)) {
+ $registry = $($containerConfigInfo.scrdockerregistry)
+ } else {
+ $registry = $altRegistry
+ }
+
+ Get-ChildItem -Path $envRootPath -Include '*.env' -Recurse | `
+ ForEach-Object {
+ Write-Host "Updating [$_] file ..."
+
+ $envContent = Get-Content -Path $_
+
+ if ($useLocalImages) {
+ $envContent = $envContent -replace "XC_NONPRODUCTION_SITECORE_DOCKER_REGISTRY=.*", "XC_NONPRODUCTION_SITECORE_DOCKER_REGISTRY="
+ $envContent = $envContent -replace "XC_SITECORE_DOCKER_REGISTRY=.*", "XC_SITECORE_DOCKER_REGISTRY="
+ $envContent = $envContent -replace "XC_PACKAGES_TAG=.*", "XC_PACKAGES_TAG=latest"
+ } else {
+ $XC_SITECORE_DOCKER_REGISTRY = "XC_SITECORE_DOCKER_REGISTRY=$($registry)/$($containerConfigInfo.sxcproject)/"
+ $envContent = $envContent -replace "XC_SITECORE_DOCKER_REGISTRY=.*", $XC_SITECORE_DOCKER_REGISTRY
+
+ $XC_PACKAGES_TAG = "XC_PACKAGES_TAG=$($containerConfigInfo.customercommercetag)"
+ $envContent = $envContent -replace "XC_PACKAGES_TAG=.*", $XC_PACKAGES_TAG
+
+ $XC_NONPRODUCTION_SITECORE_DOCKER_REGISTRY = "XC_NONPRODUCTION_SITECORE_DOCKER_REGISTRY=$($registry)/$($containerConfigInfo.sxcproject)/$($containerConfigInfo.nonproductionproject)/"
+ $envContent = $envContent -replace "XC_NONPRODUCTION_SITECORE_DOCKER_REGISTRY=.*", $XC_NONPRODUCTION_SITECORE_DOCKER_REGISTRY
+ }
+
+ if ($enginePort -ne '5000')
+ {
+ $envContent = $envContent -replace "XC_ENGINE_PORT=5000", "XC_ENGINE_PORT=$($enginePort)"
+ }
+
+ $BASE_SITECORE_DOCKER_REGISTRY = "BASE_SITECORE_DOCKER_REGISTRY=$($registry)/$($containerConfigInfo.baseproject)/"
+ $envContent = $envContent -replace "BASE_SITECORE_DOCKER_REGISTRY=.*", $BASE_SITECORE_DOCKER_REGISTRY
+
+ $XP_SITECORE_DOCKER_REGISTRY = "XP_SITECORE_DOCKER_REGISTRY=$($registry)/$($containerConfigInfo.sxpproject)/"
+ $envContent = $envContent -replace "XP_SITECORE_DOCKER_REGISTRY=.*", $XP_SITECORE_DOCKER_REGISTRY
+
+ $XP_SITECORE_TAG = "XP_SITECORE_TAG=$($containerConfigInfo.sxptag)"
+ $envContent = $envContent -replace "XP_SITECORE_TAG=.*", $XP_SITECORE_TAG
+
+ $EXTERNAL_IMAGE_TAG_SUFFIX = "EXTERNAL_IMAGE_TAG_SUFFIX=$($containerConfigInfo.os_image_tag)"
+ $envContent = $envContent -replace "EXTERNAL_IMAGE_TAG_SUFFIX=.*", $EXTERNAL_IMAGE_TAG_SUFFIX
+
+ $MODULES_SITECORE_DOCKER_REGISTRY = "MODULES_SITECORE_DOCKER_REGISTRY=$($registry)/$($containerConfigInfo.sxpproject)/$($containerConfigInfo.modulesproject)/"
+ $envContent = $envContent -replace "MODULES_SITECORE_DOCKER_REGISTRY=.*", $MODULES_SITECORE_DOCKER_REGISTRY
+
+ $SPE_SITECORE_TAG = "SPE_SITECORE_TAG=$($containerConfigInfo.spetag)"
+ $envContent = $envContent -replace "SPE_SITECORE_TAG=.*", $SPE_SITECORE_TAG
+
+ $SXA_SITECORE_TAG = "SXA_SITECORE_TAG=$($containerConfigInfo.sxatag)"
+ $envContent = $envContent -replace "SXA_SITECORE_TAG=.*", $SXA_SITECORE_TAG
+
+ $OS_IMAGE_TAG = "OS_IMAGE_TAG=$($containerConfigInfo.os_image_tag)"
+ $envContent = $envContent -replace "OS_IMAGE_TAG=.*", $OS_IMAGE_TAG
+
+ $OS_IMAGE_TAG_IIS = "OS_IMAGE_TAG_IIS=$($containerConfigInfo.OS_IMAGE_TAG)"
+ $envContent = $envContent -replace "OS_IMAGE_TAG_IIS=.*", $OS_IMAGE_TAG_IIS
+
+ Set-Content -Path $_ -Value $envContent -Force
+
+ Write-Host ".env file [$_] has been updated"
+ }
+
+ if ($enginePort -ne '5000')
+ {
+ $commonPath = Join-Path $PWD "../xc-common"
+ Get-ChildItem -Path $commonPath -Include '*.env' -Recurse | `
+ ForEach-Object {
+ Write-Host "Updating [$_] file ..."
+
+ $envContent = Get-Content -Path $_
+ $envContent = $envContent -replace "XC_ENGINE_PORT=5000", "XC_ENGINE_PORT=$($enginePort)"
+
+ Set-Content -Path $_ -Value $envContent -Force
+
+ Write-Host ".env file [$_] has been updated"
+ }
+ }
+} else {
+ throw "No JSON file"
+}
\ No newline at end of file
diff --git a/sxc/10.3/scripts/UpdateK8SYaml.ps1 b/sxc/10.3/scripts/UpdateK8SYaml.ps1
new file mode 100644
index 0000000..668689b
--- /dev/null
+++ b/sxc/10.3/scripts/UpdateK8SYaml.ps1
@@ -0,0 +1,222 @@
+[cmdletbinding()]
+param(
+ [string]$jsonFile = (Join-Path '.' 'configltsc2019.json'),
+ [string]$k8sRootPath = (Join-Path '..' 'k8s-commerce-*'),
+ [Parameter(Mandatory)]
+ [string] $braintreeEnvironment,
+ [Parameter(Mandatory)]
+ [string] $braintreeMerchantId,
+ [Parameter(Mandatory)]
+ [string] $braintreePublicKey,
+ [Parameter(Mandatory)]
+ [string] $braintreePrivateKey,
+ [Parameter(Mandatory)]
+ [string] $idCert,
+ [Parameter(Mandatory)]
+ [string] $licenseFilePath,
+ [Parameter(Mandatory)]
+ [string]$telerikKey,
+ [Parameter(Mandatory)]
+ [string]$idSecret,
+ [Parameter(Mandatory)]
+ [string]$mediaSecret,
+ [Parameter(Mandatory)]
+ [string]$graphQLKey,
+ [Parameter(Mandatory)]
+ [string]$xcIdSecret,
+ [Parameter(Mandatory)]
+ [string]$idPassword,
+ [Parameter(Mandatory)]
+ [string]$reportingApiKey,
+ [string]$altRegistry = ''
+)
+<#
+.SYNOPSIS
+Replaces the variables in the K8S(Kubernetes) yaml files with values from the config json file. K8S is only supported under LTSC 2019.
+
+.DESCRIPTION
+Replaces the variables in the K8S(Kubernetes) yaml files with values from the config json file. K8S is only supported under LTSC 2019.
+
+.PARAMETER jsonFile
+Path to the configltsc2019.json file that contains the yaml file content needed to populate the K8S files for use in a cluster.
+Default path for the configltsc2019 json is co-located with this script
+
+.PARAMETER k8sRootPath
+Path to the K8S yaml file templates. Changes are performed in place.
+Default path is ..\k8s-commerce-*
+
+.PARAMETER braintreeEnvironment
+[Parameter(Mandatory)]
+The Braintree environment. E.G. sandbox or production
+
+.PARAMETER braintreeMerchantId
+[Parameter(Mandatory)]
+Your merchant ID for the Braintreepayment provider.
+
+.PARAMETER braintreePublicKey
+[Parameter(Mandatory)]
+The public key associated to your Braintree account.
+
+.PARAMETER braintreePrivateKey
+[Parameter(Mandatory)]
+The private key associated to your Braintree account.
+
+.PARAMETER idCert
+[Parameter(Mandatory)]
+Identity Server certificate used to encryptdata.
+
+.PARAMETER licenseFilePath
+[Parameter(Mandatory)]
+Sitecore license file content converted to GZIP Compressed and Base64 encoded string.
+
+.PARAMETER telerikKey
+[Parameter(Mandatory)]
+Symmetric key used by the Telerik web controls. Length: 64-128 characters
+
+.PARAMETER idSecret
+[Parameter(Mandatory)]
+Shared secret between the Identity Server and client roles. Length: 64 characters
+
+.PARAMETER mediaSecret
+[Parameter(Mandatory)]
+Shared secret for media request protection. Length: 64 characters
+
+.PARAMETER graphQLKey
+[Parameter(Mandatory)]
+Encryption key for Graph QL. Length: 16 characters
+
+.PARAMETER xcIdSecret
+[Parameter(Mandatory)]
+The client ID assigned to Commerce Engine Connect for Sitecore Identity. This ID is used to identify the Commerce Engine Connectwith Commerce Engine.
+
+.PARAMETER idPassword
+[Parameter(Mandatory)]
+Password required to open the Identity Server certificate.
+
+.PARAMETER reportingApiKey
+[Parameter(Mandatory)]
+Symmetric key used to access the Sitecore XDB Reporting Web API. Length: 64-128 characters
+
+.PARAMETER altRegistry
+Overrides the registry value from the config json
+Default is null
+
+.EXAMPLE
+UpdateK8SYaml.ps1
+
+Use the defaults and replace the parameters in the yaml template files
+
+.EXAMPLE
+UpdateK8SYaml.ps1 -jsonFile 'C:\download\Commerce.Containers\scripts\configltsc2019.json' `
+ -k8sRootPath 'C:\download\Commerce.Containers' `
+ -licenseFilePath "Location of your licence file" `
+ -braintreeEnvironment "sandbox" `
+ -braintreeMerchantId "Your merchant id" `
+ -braintreePublicKey "Your public key" `
+ -braintreePrivateKey "Your private key" `
+ -telerikKey "Your Telerik Encryption Key" `
+ -idCert "Your Sitecore Identity certificate" `
+ -idSecret "Your Sitecore Identity secret" `
+ -mediaSecret "Your media request protection secret" `
+ -graphQLKey "Your graph QL key" `
+ -idPassword "Your Sitecore Identity password" `
+ -xcIdSecret "Your XC Connect Client Secret" `
+ -reportingApiKey "Your Sitecore Reporting API key"
+#>
+
+Function ConvertToCompressedBase64String {
+ Param (
+ [Parameter(Mandatory)]
+ [ValidateScript( {
+ if (-Not ($_ | Test-Path) ) { throw "The file or folder $_ does not exist" }
+ if (-Not ($_ | Test-Path -PathType Leaf) ) { throw "The Path argument must be a file. Folder paths are not allowed." }
+ return $true
+ })]
+ [string] $Path
+ )
+
+ $fileBytes = [System.IO.File]::ReadAllBytes($Path)
+
+ [System.IO.MemoryStream] $memoryStream = New-Object System.IO.MemoryStream
+
+ $gzipStream = New-Object System.IO.Compression.GzipStream $memoryStream, ([IO.Compression.CompressionMode]::Compress)
+ $gzipStream.Write($fileBytes, 0, $fileBytes.Length)
+
+ $gzipStream.Close()
+ $memoryStream.Close()
+ $gzipStream.Dispose()
+ $memoryStream.Dispose()
+
+ return [Convert]::ToBase64String($memoryStream.ToArray())
+}
+
+#check for the json file
+if (Test-Path("$jsonFile")) {
+
+ $license = ConvertToCompressedBase64String -Path $licenseFilePath
+
+ #Read the config json that holds the values to be used to populate the the K8S files
+ $json = Get-Content $jsonFile | Out-String | ConvertFrom-Json
+ $containerConfigInfo = @{}
+ foreach( $property in $json.psobject.properties.name )
+ {
+ $containerConfigInfo[$property] = $json.$property
+ }
+ if ([string]::IsNullOrEmpty($altRegistry)) {
+ $registry = $($containerConfigInfo.scrdockerregistry)
+ } else {
+ $registry = $altRegistry
+ }
+
+ Get-ChildItem -Path (Join-Path $k8sRootPath "k8s-commerce-*") -Directory | ForEach-Object {
+ $secretsFolder = Join-Path -Path $_.FullName -ChildPath "secrets"
+
+ Write-Host "Writing secrets for $secretsFolder\xp\sitecore-identitycertificate.txt"
+ Set-Content "$secretsFolder\xp\sitecore-identitycertificate.txt" -Value "$idCert" -Force -NoNewline
+ Write-Host "Writing secrets for $secretsFolder\xp\sitecore-identitycertificatepassword.txt"
+ Set-Content "$secretsFolder\xp\sitecore-identitycertificatepassword.txt" -Value "$idPassword" -Force -NoNewline
+ Write-Host "Writing secrets for $secretsFolder\xp\sitecore-identitysecret.txt"
+ Set-Content "$secretsFolder\xp\sitecore-identitysecret.txt" -Value "$idSecret" -Force -NoNewline
+ Write-Host "Writing secrets for $secretsFolder\xp\sitecore-media-request-protection-shared-secret.txt"
+ Set-Content "$secretsFolder\xp\sitecore-media-request-protection-shared-secret.txt" -Value "$mediaSecret" -Force -NoNewline
+ Write-Host "Writing secrets for $secretsFolder\xp\sitecore-graphql-uploadmedia_encryptionkey.txt"
+ Set-Content "$secretsFolder\xp\sitecore-graphql-uploadmedia_encryptionkey.txt" -Value "$graphQLKey" -Force -NoNewline
+ Write-Host "Writing secrets for $secretsFolder\xp\sitecore-license.txt"
+ Set-Content "$secretsFolder\xp\sitecore-license.txt" -Value "$license" -Force -NoNewline
+ Write-Host "Writing secrets for $secretsFolder\xp\sitecore-reportingapikey.txt"
+ Set-Content "$secretsFolder\xp\sitecore-reportingapikey.txt" -Value "$reportingApiKey" -Force -NoNewline
+ Write-Host "Writing secrets for $secretsFolder\xp\sitecore-telerikencryptionkey.txt"
+ Set-Content "$secretsFolder\xp\sitecore-telerikencryptionkey.txt" -Value "$telerikKey" -Force -NoNewline
+ Write-Host "Writing secrets for $secretsFolder\xc\commerce-connect-clientsecret.txt"
+ Set-Content "$secretsFolder\xc\commerce-connect-clientsecret.txt" -Value "$xcIdSecret" -Force -NoNewline
+ Write-Host "Writing secrets for $secretsFolder\xc\commerce-engine-braintreeenvironment.txt"
+ Set-Content "$secretsFolder\xc\commerce-engine-braintreeenvironment.txt" -Value "$braintreeEnvironment" -Force -NoNewline
+ Write-Host "Writing secrets for $secretsFolder\xc\commerce-engine-braintreemerchantid.txt"
+ Set-Content "$secretsFolder\xc\commerce-engine-braintreemerchantid.txt" -Value "$braintreeMerchantId" -Force -NoNewline
+ Write-Host "Writing secrets for $secretsFolder\xc\commerce-engine-braintreepublickey.txt"
+ Set-Content "$secretsFolder\xc\commerce-engine-braintreepublickey.txt" -Value "$braintreePublicKey" -Force -NoNewline
+ Write-Host "Writing secrets for$secretsFolder\xc\commerce-engine-braintreeprivatekey.txt"
+ Set-Content "$secretsFolder\xc\commerce-engine-braintreeprivatekey.txt" -Value "$braintreePrivateKey" -Force -NoNewline
+
+ #Setup the project for the sxc nonproduction containers
+ $sxcnonprod = "$($containerConfigInfo.sxcproject)/$($containerConfigInfo.nonproductionproject)"
+
+ #Setup the powershell version
+ $powershellImage = "mcr.microsoft.com/powershell:lts-nanoserver-$($containerConfigInfo.powershell_image_tag)"
+
+ Get-ChildItem -Path $_.FullName -Filter "kustomization.yaml" -Recurse | ForEach-Object {
+
+ Write-Host $_.FullName
+
+ (Get-Content $_.FullName -Raw) -replace "{registry}", $registry | Set-Content $_.FullName -NoNewline
+ (Get-Content $_.FullName -Raw) -replace "{project}", $($containerConfigInfo.sxpproject) | Set-Content $_.FullName -NoNewline
+ (Get-Content $_.FullName -Raw) -replace "{version}", $($containerConfigInfo.sxptag) | Set-Content $_.FullName -NoNewline
+ (Get-Content $_.FullName -Raw) -replace "{sxc-project}", $($containerConfigInfo.sxcproject) | Set-Content $_.FullName -NoNewline
+ (Get-Content $_.FullName -Raw) -replace "{commerce-version}", $($containerConfigInfo.customercommercetag) | Set-Content $_.FullName -NoNewline
+ (Get-Content $_.FullName -Raw) -replace "{sxc-nonproduction-project}", $sxcnonprod | Set-Content $_.FullName -NoNewline
+ (Get-Content $_.FullName -Raw) -replace "{powershell-version}", $powershellImage | Set-Content $_.FullName -NoNewline
+ }
+ }
+} else {
+ throw "No JSON file"
+}
\ No newline at end of file
diff --git a/sxc/10.3/scripts/configltsc2019.json b/sxc/10.3/scripts/configltsc2019.json
new file mode 100644
index 0000000..3156734
--- /dev/null
+++ b/sxc/10.3/scripts/configltsc2019.json
@@ -0,0 +1,15 @@
+{
+ "sxptag": "10.3-ltsc2019",
+ "customercommercetag": "10.3-ltsc2019",
+ "spetag": "6.4-1809",
+ "sxatag": "10.3-1809",
+ "scrdockerregistry": "scr.sitecore.com",
+ "sxpproject": "sxp",
+ "sxcproject": "sxc",
+ "baseproject": "base",
+ "modulesproject": "modules",
+ "nonproductionproject": "nonproduction",
+ "nonproductiontag": "10.3-ltsc2019",
+ "os_image_tag": "ltsc2019",
+ "powershell_image_tag": "1809"
+}
diff --git a/sxc/10.3/scripts/configltsc2022.json b/sxc/10.3/scripts/configltsc2022.json
new file mode 100644
index 0000000..d97b72b
--- /dev/null
+++ b/sxc/10.3/scripts/configltsc2022.json
@@ -0,0 +1,15 @@
+{
+ "sxptag": "10.3-ltsc2022",
+ "customercommercetag": "10.3-ltsc2022",
+ "spetag": "6.4-ltsc2022",
+ "sxatag": "10.3-ltsc2022",
+ "scrdockerregistry": "scr.sitecore.com",
+ "sxpproject": "sxp",
+ "sxcproject": "sxc",
+ "baseproject": "base",
+ "modulesproject": "modules",
+ "nonproductionproject": "nonproduction",
+ "nonproductiontag": "10.3-ltsc2022",
+ "os_image_tag": "ltsc2022",
+ "powershell_image_tag": "ltsc2022"
+}
diff --git a/sxc/10.3/scripts/readme.md b/sxc/10.3/scripts/readme.md
new file mode 100644
index 0000000..65408d2
--- /dev/null
+++ b/sxc/10.3/scripts/readme.md
@@ -0,0 +1,43 @@
+# Sitecore Experience Commerce Container Scripts
+
+## Introduction
+
+This folder contains a set of scripts and json files, provided as examples, to facilitate the creation of the Sitecore Experience Commerce container images using Docker.
+
+## Scripts
+
+**CleanContainerCache.ps1** -> cleans the Docker container images cache. The container images cache is used to speed any action that requires container images to be pulling container images from a registry. Some commands that use the container images cache are: docker pull
, docker-compose up
, docker-compose build
. When running containers in a continuous integration pipeline, you should always start from a clean environment.
+
+**ComposeInit.ps1** -> performs the necessary prerequisites on setting up a docker environment including modifying the environment file, creating and installing of certificates, updating of the hosts file, and validation that the volume mapping folders exist. Only a minimum set of parameters are required to perform a default deployment.
+
+**ContainerBuild.ps1** -> builds container images based on the contents of the docker-compose.build.yml files. The results are container images with a tag of "latest".
+
+**ContainerTag.ps1** -> tags container images with provided tag.
+
+**PrepEngineContainerBuild.ps1** -> Takes the Sitecore.Commerce.Engine.OnPrem.Solr and Sitecore.BizFx.OnPrem WDP's from
+[dev.sitecore.net](https://dev.sitecore.net) and expands them into the structure expected by the Sitecore XC container Docker files.
+This content will be use when calling docker-compose build
to create container images.
+
+**UpdateEnvTag.ps1** -> sets the registry, namespace, project and tag of container images.
+
+**UpdateK8SYaml.ps1** -> sets Kubernetes secrets files with values from the configltsc2019 or configltsc2022 json file. Kubernetes only supports Windows LTSC 2019 and LSTC 2022 images.
+
+## JSON Files
+
+**configltsc2019.json**, and **configltsc2022.json** -> are used by the update scripts UpdateEnvTag.ps1
, UpdateEnvCompose.ps1
and UpdateK8SYaml.ps1
to override or replace tokens defined in the .env and yaml files. This allows the customized files to be used in the build and run processes.
+
+| Variable | Value | Description |
+| --------------- | --------------------------- | -------------------------------------------------------------|
+| sxptag | 10.3-ltsc2019 | Short tag of the SXP container image tag you want to consume. The short tag consists of the SXP version and the operating system version. |
+| customercommercetag | 10.3-ltsc2019 | Tag for the XC container images you built with your application. |
+| spetag | 6.4-1809 | Sitecore Powershell Extensions container image tag. |
+| sxatag | 10.3-1809 | Sitecore Experience Accelerator container image tag. |
+| scrdockerregistry | scr.sitecore.com | Sitecore Container Registry name. |
+| sxpproject | platform | Sitecore Experience Platform container project name. |
+| sxcproject | sxc | Sitecore Experience Commerce container project name. |
+| baseproject | base | Container project name for base containers, like operating system containers from Microsoft. |
+| modulesproject | modules | Container project name for Sitecore Modules, like Sitecore Experience Accelerator. |
+| nonproductionproject | nonproduction | Container project name for container images that are not for production. Provided MSSQL and Solr container images are *not-production* images. It is expected that customers provide suitable MSSQL and Solr environments for production deployments. |
+| nonproductiontag | 10.3-ltsc2019 | Image tag for non-production container images. |
+| os_image_tag | ltsc2019 | Operating System name on which to build and run containers. Valid values are *ltsc2022*, *ltsc2019* |
+| powershell_image_tag | 1809 | Powershell Image to support k8s only. Valid values are *ltsc2022* and *1809* |
diff --git a/sxc/10.3/xc-common/.env b/sxc/10.3/xc-common/.env
new file mode 100644
index 0000000..cbc630c
--- /dev/null
+++ b/sxc/10.3/xc-common/.env
@@ -0,0 +1,12 @@
+BASE_SITECORE_DOCKER_REGISTRY=scr.sitecore.com/base/
+
+XP_SITECORE_DOCKER_REGISTRY=scr.sitecore.com/sxp/
+XP_SITECORE_TAG=10.3-ltsc2019
+OS_IMAGE_TAG=ltsc2019
+OS_IMAGE_TAG_IIS=ltsc2019
+
+XC_SITECORE_DOCKER_REGISTRY=scr.sitecore.com/sxc/
+XC_PACKAGES_TAG=10.3-ltsc2019
+
+ISOLATION=default
+XC_ENGINE_PORT=5000
\ No newline at end of file
diff --git a/sxc/10.3/xc-common/bizfx/Dockerfile b/sxc/10.3/xc-common/bizfx/Dockerfile
new file mode 100644
index 0000000..362223d
--- /dev/null
+++ b/sxc/10.3/xc-common/bizfx/Dockerfile
@@ -0,0 +1,42 @@
+# escape=`
+# This Dockerfile is used to generate images for the following roles: bizfx
+
+ARG BASE_IMAGE
+ARG ASSETS_IMAGE
+
+FROM ${ASSETS_IMAGE} AS assets
+
+FROM ${BASE_IMAGE}
+
+WORKDIR c:/inetpub/wwwroot
+
+RUN NET USER commerce_admin /ADD /expires:never && `
+ WMIC USERACCOUNT WHERE Name='commerce_admin' SET PasswordExpires=FALSE && `
+ NET LOCALGROUP Administrators commerce_admin /ADD
+
+USER commerce_admin
+
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+
+COPY --from=assets module/tools/LogMonitor C:\LogMonitor
+
+COPY .\InstallPrerequisites.ps1 .\
+COPY LogMonitor/ c:\LogMonitor
+
+ADD https://download.microsoft.com/download/1/2/8/128E2E22-C1B9-44A4-BE2A-5859ED1D4592/rewrite_amd64_en-US.msi c:/rewrite_amd64_en-US.msi
+
+RUN .\InstallPrerequisites.ps1;
+
+COPY wdp/ .
+COPY Init.ps1 C:\inetpub
+
+EXPOSE 80
+
+HEALTHCHECK --start-period=300s `
+ CMD powershell -command `
+ try { `
+ $response = Invoke-WebRequest http://localhost -UseBasicParsing; `
+ if ($response.StatusCode -eq 200) { exit 0 } else { exit 1 }; `
+ } catch { exit 1 }
+
+ENTRYPOINT ["C:\\LogMonitor\\LogMonitor.exe", "powershell.exe", "C:\\inetpub\\Init.ps1", "C:\\inetpub\\wwwroot\\assets\\config.json"]
\ No newline at end of file
diff --git a/sxc/10.3/xc-common/bizfx/Init.ps1 b/sxc/10.3/xc-common/bizfx/Init.ps1
new file mode 100644
index 0000000..78826dc
--- /dev/null
+++ b/sxc/10.3/xc-common/bizfx/Init.ps1
@@ -0,0 +1,21 @@
+param(
+ [Parameter(Mandatory = $true)]
+ [string] $ConfigPath
+)
+$config = Get-Content -Path $ConfigPath | ConvertFrom-Json
+$settings = @{
+ "EngineUri" = $env:sitecore_xc_bizfx_authoring_url
+ "IdentityServerUri" = $env:sitecore_xc_bizfx_identity_server_url
+ "BizFxUri" = $env:sitecore_xc_bizfx_bizfx_url
+ "Language" = $env:sitecore_xc_bizfx_default_language
+ "ContentLanguage" = $env:sitecore_xc_bizfx_default_language
+ "Currency" = $env:sitecore_xc_bizfx_default_currency
+ "ShopName" = $env:sitecore_xc_bizfx_default_shopname
+}
+foreach ($key in $settings.Keys) {
+ Write-Host "Updating [$configPath] config: Set [$($settings.Item($key))] as [$key]"
+ $config.$key = $settings.Item($key)
+}
+$config | ConvertTo-Json | Set-Content $ConfigPath
+
+& "C:\ServiceMonitor.exe" w3svc
diff --git a/sxc/10.3/xc-common/bizfx/InstallPrerequisites.ps1 b/sxc/10.3/xc-common/bizfx/InstallPrerequisites.ps1
new file mode 100644
index 0000000..5993119
--- /dev/null
+++ b/sxc/10.3/xc-common/bizfx/InstallPrerequisites.ps1
@@ -0,0 +1,18 @@
+# delete everything from wwwroot
+Write-Host "Emptying c:\inetpub\wwwroot folder"
+Remove-Item -Recurse C:\inetpub\wwwroot\*
+
+#Install rewrite module
+try {
+ Write-Host "Installing rewrite module"
+ Start-Process -NoNewWindow -Wait msiexec.exe -ArgumentList /i, "c:\rewrite_amd64_en-US.msi", /qn
+}
+catch {
+ Write-Error "Installing rewrite module FAILED."
+ Write-Error Error[0]
+ exit(1)
+}
+
+#remove the rewrite msi
+Write-Host "Cleaning up downloaded file"
+Remove-Item c:\rewrite_amd64_en-US.msi -Recurse -Force;
diff --git a/sxc/10.3/xc-common/bizfx/LogMonitor/LogMonitorConfig.json b/sxc/10.3/xc-common/bizfx/LogMonitor/LogMonitorConfig.json
new file mode 100644
index 0000000..e31afe7
--- /dev/null
+++ b/sxc/10.3/xc-common/bizfx/LogMonitor/LogMonitorConfig.json
@@ -0,0 +1,12 @@
+{
+ "LogConfig": {
+ "sources": [
+ {
+ "type": "File",
+ "directory": "c:\\inetpub\\logs",
+ "filter": "*.log",
+ "includeSubdirectories": true
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/sxc/10.3/xc-common/docker-compose.build.yml b/sxc/10.3/xc-common/docker-compose.build.yml
new file mode 100644
index 0000000..a7f1bd7
--- /dev/null
+++ b/sxc/10.3/xc-common/docker-compose.build.yml
@@ -0,0 +1,26 @@
+services:
+ id:
+ build:
+ isolation: ${ISOLATION}
+ context: ./id
+ args:
+ BASE_IMAGE: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-id7:${XP_SITECORE_TAG}
+ ASSETS_IMAGE: ${XC_SITECORE_DOCKER_REGISTRY}sitecore-xc0-assets:${XC_PACKAGES_TAG}
+ image: sitecore-xc-id7
+ bizfx:
+ build:
+ isolation: ${ISOLATION}
+ context: ./bizfx
+ args:
+ BASE_IMAGE: mcr.microsoft.com/windows/servercore/iis:windowsservercore-${OS_IMAGE_TAG_IIS}
+ ASSETS_IMAGE: ${XC_SITECORE_DOCKER_REGISTRY}sitecore-xc0-assets:${XC_PACKAGES_TAG}
+ image: sitecore-xc-bizfx
+ engine:
+ build:
+ isolation: ${ISOLATION}
+ context: ./engine
+ args:
+ BASE_IMAGE: mcr.microsoft.com/windows/servercore:${OS_IMAGE_TAG}
+ ASSETS_IMAGE: ${XC_SITECORE_DOCKER_REGISTRY}sitecore-xc0-assets:${XC_PACKAGES_TAG}
+ XC_ENGINE_PORT: ${XC_ENGINE_PORT}
+ image: sitecore-xc-engine
diff --git a/sxc/10.3/xc-common/engine/Dockerfile b/sxc/10.3/xc-common/engine/Dockerfile
new file mode 100644
index 0000000..bc7535b
--- /dev/null
+++ b/sxc/10.3/xc-common/engine/Dockerfile
@@ -0,0 +1,37 @@
+# escape=`
+# This Dockerfile is used to generate images for the following roles: engine-authoring, engine-shops, engine-minions
+
+ARG BASE_IMAGE
+ARG ASSETS_IMAGE
+
+FROM ${ASSETS_IMAGE} AS assets
+
+FROM ${BASE_IMAGE}
+
+ARG XC_ENGINE_PORT
+
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+
+COPY --from=assets module/tools/LogMonitor C:\LogMonitor
+
+COPY LogMonitor/ C:\LogMonitor
+COPY HealthChecks/ C:\HealthChecks
+
+USER ContainerAdministrator
+
+ADD https://download.visualstudio.microsoft.com/download/pr/db07eed5-297a-45b8-bea2-1e93c623a88c/6e5a8d3432e6213f071be3751ae53a08/dotnet-hosting-6.0.11-win.exe .\install\dotnet.exe
+
+ENV ASPNETCORE_URLS=http://+:${XC_ENGINE_PORT} `
+ DOTNET_RUNNING_IN_CONTAINER=true `
+ DOTNET_RUNNING_IN_CONTAINERS=true
+
+RUN Start-Process -FilePath '.\install\dotnet.exe' -ArgumentList '/Passive /NoRestart' -Wait;
+
+WORKDIR C:/engine
+COPY wdp/ .
+
+USER ContainerUser
+
+EXPOSE ${XC_ENGINE_PORT}
+
+ENTRYPOINT ["C:\\LogMonitor\\LogMonitor.exe", "dotnet.exe", "Sitecore.Commerce.Engine.dll"]
\ No newline at end of file
diff --git a/sxc/10.3/xc-common/engine/HealthChecks/Healthcheck.ps1 b/sxc/10.3/xc-common/engine/HealthChecks/Healthcheck.ps1
new file mode 100644
index 0000000..3eebe93
--- /dev/null
+++ b/sxc/10.3/xc-common/engine/HealthChecks/Healthcheck.ps1
@@ -0,0 +1,42 @@
+param(
+ [int]$RequestTimeout = 300,
+ [string]$Server = "http://localhost",
+ [string]$ReadyCheck = "/health",
+ [string]$LiveCheck = "/health",
+ [int]$Port = 5000
+)
+
+function InvokeWebRequest {
+ param (
+ [string]$Endpoint,
+ [int]$RequestTimeout
+ )
+
+ try {
+ $response = Invoke-WebRequest -Uri $Endpoint -UseBasicParsing -TimeoutSec $RequestTimeout
+ }
+ catch {
+ $response = $_.Exception.Response
+ }
+ finally {
+ Write-Information -MessageData "$Endpoint - $($response.StatusCode)" -InformationAction:Continue
+
+ if ($response.StatusCode -eq 200) {
+ $returnCode = 0
+ } else {
+ $returnCode = 1
+ }
+ }
+
+ return $returnCode
+}
+
+$check = "$($Server):$port$LiveCheck"
+
+$result = InvokeWebRequest -Endpoint $check -RequestTimeout $RequestTimeout
+
+if ($result -eq 1) {
+ exit 1
+}
+
+exit 0
\ No newline at end of file
diff --git a/sxc/10.3/xc-common/engine/LogMonitor/LogMonitorConfig.json b/sxc/10.3/xc-common/engine/LogMonitor/LogMonitorConfig.json
new file mode 100644
index 0000000..a3287a9
--- /dev/null
+++ b/sxc/10.3/xc-common/engine/LogMonitor/LogMonitorConfig.json
@@ -0,0 +1,12 @@
+{
+ "LogConfig": {
+ "sources": [
+ {
+ "type": "File",
+ "directory": "c:\\Engine\\wwwroot\\logs",
+ "filter": "*.txt",
+ "includeSubdirectories": true
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/sxc/10.3/xc-common/id/Dockerfile b/sxc/10.3/xc-common/id/Dockerfile
new file mode 100644
index 0000000..920ff24
--- /dev/null
+++ b/sxc/10.3/xc-common/id/Dockerfile
@@ -0,0 +1,12 @@
+# This Dockerfile is used to generate images for the following roles: id
+
+ARG BASE_IMAGE
+ARG ASSETS_IMAGE
+
+FROM ${ASSETS_IMAGE} AS assets
+
+FROM ${BASE_IMAGE}
+
+WORKDIR c:/Identity
+
+COPY --from=assets module/id/content .
\ No newline at end of file
diff --git a/sxc/10.3/xc-common/mssql/init/Dockerfile b/sxc/10.3/xc-common/mssql/init/Dockerfile
new file mode 100644
index 0000000..46f507e
--- /dev/null
+++ b/sxc/10.3/xc-common/mssql/init/Dockerfile
@@ -0,0 +1,45 @@
+# escape=`
+# This Dockerfile is used to generate images for the following roles: mssql
+
+ARG BASE_IMAGE
+ARG ASSETS_IMAGE
+
+FROM ${ASSETS_IMAGE} AS assets
+
+FROM ${BASE_IMAGE}
+
+ARG TOPOLOGY
+ENV TOPOLOGY=${TOPOLOGY}
+ENV SQL_DATABASE_PREFIX=Sitecore
+
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+
+COPY --from=assets C:\module\db C:\resources
+COPY --from=assets C:\module\tools\scripts\StartCommerceInit.ps1 C:\module\tools\scripts\DeployRoles.ps1 C:\module\tools\scripts\CreateExternalDataSources.ps1 C:\
+
+
+# hadolint ignore=DL3025
+ENTRYPOINT ["powershell.exe", ".\\StartCommerceInit.ps1", "-ResourcesDirectory $env:RESOURCES_PATH", "-SqlServer $env:SQL_SERVER", "-SqlAdminUser $env:SQL_ADMIN_LOGIN", `
+ "-SqlAdminPassword $env:SQL_ADMIN_PASSWORD", "-SitecoreAdminPassword $env:sitecore_admin_password", "-SqlDatabasePrefix $env:Sql_Database_Prefix", `
+ "-SqlElasticPoolName $env:SQL_ELASTIC_POOL_NAME", " -DatabasesToDeploy $env:DATABASES_TO_DEPLOY", `
+ "-PostDeploymentWaitPeriod $env:POST_DEPLOYMENT_WAIT_PERIOD", `
+ "-SqlCustomDatabasePrefixUpdateFrom $env:SQL_CUSTOM_DATABASE_PREFIX_UPDATE_FROM", `
+ "-CoreDatabaseName Core", "-SharedDatabaseName $env:XC_SHARED_DB", "-ArchiveDatabaseName $env:XC_SHARED_ARCHIVE_DB", "-MasterkeyPassword $env:XC_DB_Masterkey_Password", `
+ "-DatabaseUsers @( `
+ @{'databaseName' = $env:Sql_Database_Prefix + '.Master'; 'username' = $env:Master_Database_Username; 'password' = $env:Master_Database_Password}, `
+ @{'databaseName' = $env:Sql_Database_Prefix + '.Core'; 'username' = $env:Core_Database_Username; 'password' = $env:Core_Database_Password}, `
+ @{'databaseName' = $env:Sql_Database_Prefix + '.Web'; 'username' = $env:Web_Database_Username; 'password' = $env:Web_Database_Password}, `
+ @{'databaseName' = $env:Sql_Database_Prefix + '.Experienceforms'; 'username' = $env:Forms_Database_Username; 'password' = $env:Forms_Database_Password}, `
+ @{'databaseName' = $env:Sql_Database_Prefix + '.Exm.master'; 'username' = $env:Exm_Master_Database_Username; 'password' = $env:Exm_Master_Database_Password}, `
+ @{'databaseName' = $env:Sql_Database_Prefix + '.Marketingautomation'; 'username' = $env:Marketing_Automation_Database_Username; 'password' = $env:Marketing_Automation_Database_Password}, `
+ @{'databaseName' = $env:Sql_Database_Prefix + '.Messaging'; 'username' = $env:Messaging_Database_Username; 'password' = $env:Messaging_Database_Password }, `
+ @{'databaseName' = $env:Sql_Database_Prefix + '.Reporting'; 'username' = $env:Reporting_Database_Username; 'password' = $env:Reporting_Database_Password }, `
+ @{'databaseName' = $env:Sql_Database_Prefix + '.Referencedata'; 'username' = $env:Reference_Data_Database_Username; 'password' = $env:Reference_Data_Database_Password }, `
+ @{'databaseName' = $env:Sql_Database_Prefix + '.Processing.Pools'; 'username' = $env:Processing_Pools_Database_Username; 'password' = $env:Processing_Pools_Database_Password }, `
+ @{'databaseName' = $env:Sql_Database_Prefix + '.Processing.Tasks'; 'username' = $env:Processing_Tasks_Database_Username; 'password' = $env:Processing_Tasks_Database_Password }, `
+ @{'databaseName' = $env:Sql_Database_Prefix + '.Processing.Engine.Tasks'; 'username' = $env:Processing_Engine_Tasks_Database_Username; 'password' = $env:Processing_Engine_Tasks_Database_Password }, `
+ @{'databaseName' = $env:Sql_Database_Prefix + '.Processing.Engine.Storage'; 'username' = $env:Processing_Engine_Storage_Database_Username; 'password' = $env:Processing_Engine_Storage_Database_Password }, `
+ @{'databaseName' = $env:Sql_Database_Prefix + '.Xdb.Collection.ShardMapManager'; 'username' = $env:Collection_ShardMapManager_Database_Username; 'password' = $env:Collection_ShardMapManager_Database_Password }, `
+ @{'databaseName' = $env:Sql_Database_Prefix + '.Xdb.Collection.Shard0'; 'username' = $env:Collection_ShardMapManager_Database_Username; 'password' = $env:Collection_ShardMapManager_Database_Password }, `
+ @{'databaseName' = $env:Sql_Database_Prefix + '.Xdb.Collection.Shard1'; 'username' = $env:Collection_ShardMapManager_Database_Username; 'password' = $env:Collection_ShardMapManager_Database_Password } `
+ )"]
\ No newline at end of file
diff --git a/sxc/10.3/xc-common/prc-rep/Dockerfile b/sxc/10.3/xc-common/prc-rep/Dockerfile
new file mode 100644
index 0000000..bd4709c
--- /dev/null
+++ b/sxc/10.3/xc-common/prc-rep/Dockerfile
@@ -0,0 +1,15 @@
+# escape=`
+# This Dockerfile is used to generate images for the following roles: prc, rep, xdba, xdbc
+
+ARG BASE_IMAGE
+ARG ASSETS_IMAGE
+
+FROM ${ASSETS_IMAGE} AS assets
+
+FROM ${BASE_IMAGE}
+
+ARG ROLE
+
+WORKDIR /inetpub/wwwroot
+
+COPY --from=assets module/${ROLE}/content/inetpub/wwwroot ./
\ No newline at end of file
diff --git a/sxc/10.3/xc-common/solr-init/Dockerfile b/sxc/10.3/xc-common/solr-init/Dockerfile
new file mode 100644
index 0000000..de0b7ff
--- /dev/null
+++ b/sxc/10.3/xc-common/solr-init/Dockerfile
@@ -0,0 +1,39 @@
+# escape=`
+
+ARG BASE_IMAGE
+ARG ASSETS_IMAGE
+
+FROM ${ASSETS_IMAGE} AS assets
+
+FROM ${BASE_IMAGE}
+
+ARG XC_TOPOLOGY
+ARG SOLR_XDB_SCHEMA_FILE
+
+ENV SOLR_SITECORE_CONFIGSET_SUFFIX_NAME=_config `
+ SOLR_REPLICATION_FACTOR=1 `
+ SOLR_NUMBER_OF_SHARDS=1 `
+ SOLR_MAX_SHARDS_NUMBER_PER_NODES=1 `
+ SOLR_CORE_PREFIX_NAME=sitecore `
+ SOLR_XDB_SCHEMA_FILE=${SOLR_XDB_SCHEMA_FILE} `
+ TOPOLOGY=${XC_TOPOLOGY} `
+ SOLR_COMMERCE_PREFIX_NAME=commerce `
+ SOLR_COMMERCE_POSTFIX_NAME=Scope `
+ SOLR_COMMERCE_REBUILD_POSTFIX_NAME=-Rebuild
+
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+
+COPY --from=assets C:\module\solr C:\data
+COPY --from=assets C:\module\tools\scripts\New-SolrCore-Commerce.ps1 C:\module\tools\scripts\Start-Commerce.ps1 C:\
+
+ENTRYPOINT ["powershell.exe", ".\\Start-Commerce.ps1", "-SitecoreSolrConnectionString $env:SITECORE_SOLR_CONNECTION_STRING", `
+ "-SolrCorePrefix $env:SOLR_CORE_PREFIX_NAME", `
+ "-SolrSitecoreConfigsetSuffixName $env:SOLR_SITECORE_CONFIGSET_SUFFIX_NAME", `
+ "-SolrReplicationFactor $env:SOLR_REPLICATION_FACTOR", `
+ "-SolrNumberOfShards $env:SOLR_NUMBER_OF_SHARDS", `
+ "-SolrMaxShardsPerNodes $env:SOLR_MAX_SHARDS_NUMBER_PER_NODES", `
+ "-SolrXdbSchemaFile .\\data\\schema.json", `
+ "-CommerceSolrConnectionString $env:COMMERCE_SOLR_CONNECTION_STRING", `
+ "-SolrCommercePrefix $env:SOLR_COMMERCE_PREFIX_NAME", `
+ "-SolrCommercePostfix $env:SOLR_COMMERCE_POSTFIX_NAME", `
+ "-SolrCommerceRebuildPostfix $env:SOLR_COMMERCE_REBUILD_POSTFIX_NAME"]
diff --git a/sxc/10.3/xc-common/xdbautomation/Dockerfile b/sxc/10.3/xc-common/xdbautomation/Dockerfile
new file mode 100644
index 0000000..d5f21fe
--- /dev/null
+++ b/sxc/10.3/xc-common/xdbautomation/Dockerfile
@@ -0,0 +1,19 @@
+# escape=`
+# This Dockerfile is used to generate images for the following roles: prc, rep, xdba, xdbc
+
+ARG BASE_IMAGE
+ARG ASSETS_IMAGE
+
+FROM ${ASSETS_IMAGE} AS assets
+
+FROM ${BASE_IMAGE}
+
+ARG CONTENT_PATH
+
+WORKDIR /inetpub/wwwroot
+
+COPY --from=assets module/${CONTENT_PATH} C:\module
+COPY --from=assets module/${CONTENT_PATH}/App_data .\App_data\
+
+RUN Copy-Item -Path "C:\module\*.dll" -Destination "C:\inetpub\wwwroot\bin"; `
+ Remove-Item -Path "C:\module" -Recurse -Force;
\ No newline at end of file
diff --git a/sxc/10.3/xc-common/xdbsearch/Dockerfile b/sxc/10.3/xc-common/xdbsearch/Dockerfile
new file mode 100644
index 0000000..6c54838
--- /dev/null
+++ b/sxc/10.3/xc-common/xdbsearch/Dockerfile
@@ -0,0 +1,15 @@
+# escape=`
+# This Dockerfile is used to generate images for the following roles: prc, rep, xdba, xdbc
+
+ARG BASE_IMAGE
+ARG ASSETS_IMAGE
+
+FROM ${ASSETS_IMAGE} AS assets
+
+FROM ${BASE_IMAGE}
+
+WORKDIR /inetpub/wwwroot
+
+ARG CONTENT_PATH
+
+COPY --from=assets module/${CONTENT_PATH}/App_data ./App_data/
\ No newline at end of file
diff --git a/sxc/10.3/xc-common/xdbworkers/Dockerfile b/sxc/10.3/xc-common/xdbworkers/Dockerfile
new file mode 100644
index 0000000..97dc02b
--- /dev/null
+++ b/sxc/10.3/xc-common/xdbworkers/Dockerfile
@@ -0,0 +1,14 @@
+# This Dockerfile is used to generate images for the following roles: xdbsearchworker, xdbautomationworker
+
+ARG BASE_IMAGE
+ARG ASSETS_IMAGE
+
+FROM ${ASSETS_IMAGE} AS assets
+
+FROM ${BASE_IMAGE}
+
+WORKDIR /service
+
+ARG CONTENT_PATH
+
+COPY --from=assets module/${CONTENT_PATH} .
\ No newline at end of file
diff --git a/sxc/10.3/xc0/.env b/sxc/10.3/xc0/.env
new file mode 100644
index 0000000..2d27f72
--- /dev/null
+++ b/sxc/10.3/xc0/.env
@@ -0,0 +1,62 @@
+BASE_SITECORE_DOCKER_REGISTRY=scr.sitecore.com/base/
+
+XP_SITECORE_DOCKER_REGISTRY=scr.sitecore.com/sxp/
+XP_SITECORE_TAG=10.3-ltsc2019
+EXTERNAL_IMAGE_TAG_SUFFIX=ltsc2019
+
+XC_NONPRODUCTION_SITECORE_DOCKER_REGISTRY=scr.sitecore.com/sxc/nonproduction/
+XC_SITECORE_DOCKER_REGISTRY=scr.sitecore.com/sxc/
+XC_PACKAGES_TAG=10.3-ltsc2019
+
+TRAEFIK_IMAGE=traefik:v2.5.3-windowsservercore-1809
+TRAEFIK_ISOLATION=hyperv
+
+ISOLATION=default
+
+CM_HOST=xc0cm.localhost
+ID_HOST=xc0id.localhost
+
+AUTHORING_HOST=authoring.localhost
+SHOPS_HOST=shops.localhost
+MINIONS_HOST=minions.localhost
+
+BIZFX_HOST=bizfx.localhost
+
+SQL_SERVER=mssql
+SQL_SA_LOGIN=sa
+SQL_SA_PASSWORD=Password12345
+SQL_DATABASE_PREFIX=Sitecore
+SQL_CUSTOM_DATABASE_PREFIX_UPDATE_FROM=
+SITECORE_ADMIN_PASSWORD=Password12345
+
+SOLR_CORE_PREFIX_NAME=sitecore
+SOLR_COMMERCE_PREFIX_NAME=commerce
+MEDIA_REQUEST_PROTECTION_SHARED_SECRET=
+LOG_LEVEL_VALUE=INFO
+
+XC_GLOBAL_DB=SitecoreCommerce_Global
+XC_GLOBAL_DB_TRUSTED_CONNECTION=false
+XC_SHARED_DB=SitecoreCommerce_SharedEnvironments
+XC_SHARED_DB_TRUSTED_CONNECTION=false
+XC_SHARED_ARCHIVE_DB=SitecoreCommerce_ArchiveSharedEnvironments
+
+XC_ENGINE_PORT=5000
+XC_ENGINE_BRAINTREEENVIRONMENT=
+XC_ENGINE_BRAINTREEMERCHANTID=
+XC_ENGINE_BRAINTREEPUBLICKEY=
+XC_ENGINE_BRAINTREEPRIVATEKEY=
+XC_BIZFX_DEFAULT_LANGUAGE=en
+XC_BIZFX_DEFAULT_CURRENCY=USD
+XC_BIZFX_DEFAULT_SHOPNAME=CommerceEngineDefaultStorefront
+XC_ENGINE_CONNECT_CLIENTID=CommerceEngineConnect
+XC_IDENTITY_COMMERCEENGINECONNECTCLIENT_CLIENTSECRET1=
+
+REPORTING_API_KEY=
+TELERIK_ENCRYPTION_KEY=
+SITECORE_GRAPHQL_ENABLED=false
+SITECORE_GRAPHQL_EXPOSEPLAYGROUND=false
+SITECORE_GRAPHQL_UPLOADMEDIAOPTIONS_ENCRYPTIONKEY=
+SITECORE_IDSECRET=
+SITECORE_ID_CERTIFICATE=
+SITECORE_ID_CERTIFICATE_PASSWORD=
+SITECORE_LICENSE=
\ No newline at end of file
diff --git a/sxc/10.3/xc0/cm/Dockerfile b/sxc/10.3/xc0/cm/Dockerfile
new file mode 100644
index 0000000..63868b4
--- /dev/null
+++ b/sxc/10.3/xc0/cm/Dockerfile
@@ -0,0 +1,35 @@
+# escape=`
+# This Dockerfile is used to generate images for the following roles: cd, cm
+
+ARG BASE_IMAGE
+ARG ASSETS_IMAGE
+
+FROM ${ASSETS_IMAGE} AS assets
+
+FROM ${BASE_IMAGE}
+
+ARG XC_ROLE_CONFIGS
+
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+
+ENV DOTNET_RUNNING_IN_CONTAINER=true
+
+WORKDIR c:/inetpub/wwwroot
+
+COPY --from=assets module/${XC_ROLE_CONFIGS}/content/inetpub/wwwroot .
+COPY --from=assets module/sample/content/inetpub/wwwroot .
+COPY --from=assets module/${XC_ROLE_CONFIGS}/content/Permissions C:\Permissions
+COPY --from=assets module/tools C:\tools
+
+# Copy any custom files from build location
+COPY . .
+
+RUN New-Item -Path C:\inetpub\wwwroot\App_Config -Name Security-Shared -ItemType directory; `
+ Push-Location c:/inetpub/wwwroot/App_Config/Include/Y.Commerce.Engine; `
+ Rename-Item Sitecore.Commerce.Engine.DataProvider.config.disabled Sitecore.Commerce.Engine.DataProvider.config; `
+ Rename-Item Sitecore.Commerce.Engine.Connectors.Index.Common.config.disabled Sitecore.Commerce.Engine.Connectors.Index.Common.config; `
+ Rename-Item Sitecore.Commerce.Engine.Connectors.Index.Solr.config.disabled Sitecore.Commerce.Engine.Connectors.Index.Solr.config; `
+ Pop-Location; `
+ Remove-Item -Path "./XConnectFiles/" -Recurse -Force;
+
+ENTRYPOINT ["C:\\LogMonitor\\LogMonitor.exe", "powershell", "C:\\tools\\scripts\\CopySecurityDomain.ps1; C:\\Run-W3SVCService.ps1"]
\ No newline at end of file
diff --git a/sxc/10.3/xc0/cm/readme b/sxc/10.3/xc0/cm/readme
new file mode 100644
index 0000000..a4a4213
--- /dev/null
+++ b/sxc/10.3/xc0/cm/readme
@@ -0,0 +1 @@
+Add Commerce custom XP0 CM content here
\ No newline at end of file
diff --git a/sxc/10.3/xc0/device-detection-data/readme.md b/sxc/10.3/xc0/device-detection-data/readme.md
new file mode 100644
index 0000000..fe38d07
--- /dev/null
+++ b/sxc/10.3/xc0/device-detection-data/readme.md
@@ -0,0 +1 @@
+device detection database will be mounted here
\ No newline at end of file
diff --git a/sxc/10.3/xc0/docker-compose.build.yml b/sxc/10.3/xc0/docker-compose.build.yml
new file mode 100644
index 0000000..829ca25
--- /dev/null
+++ b/sxc/10.3/xc0/docker-compose.build.yml
@@ -0,0 +1,47 @@
+services:
+ solr-init:
+ image: sitecore-xc0-solr-init
+ build:
+ isolation: ${ISOLATION}
+ context: ../xc-common/solr-init
+ args:
+ BASE_IMAGE: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-xp0-solr-init:${XP_SITECORE_TAG}
+ ASSETS_IMAGE: ${XC_SITECORE_DOCKER_REGISTRY}sitecore-xc0-assets:${XC_PACKAGES_TAG}
+ XC_TOPOLOGY: xc0
+ SOLR_XDB_SCHEMA_FILE: "/Content/Website/App_Data/solrcommands/schema.json"
+ cm:
+ build:
+ isolation: ${ISOLATION}
+ context: ./cm
+ args:
+ BASE_IMAGE: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-xp0-cm:${XP_SITECORE_TAG}
+ ASSETS_IMAGE: ${XC_SITECORE_DOCKER_REGISTRY}sitecore-xc0-assets:${XC_PACKAGES_TAG}
+ XC_ROLE_CONFIGS: cm
+ image: sitecore-xc0-cm
+ xconnect:
+ build:
+ isolation: ${ISOLATION}
+ context: ../xc-common/xdbautomation
+ args:
+ BASE_IMAGE: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-xp0-xconnect:${XP_SITECORE_TAG}
+ ASSETS_IMAGE: ${XC_SITECORE_DOCKER_REGISTRY}sitecore-xc0-assets:${XC_PACKAGES_TAG}
+ CONTENT_PATH: xconnect/content/inetpub/wwwroot
+ image: sitecore-xc0-xconnect
+ xdbsearchworker:
+ build:
+ isolation: ${ISOLATION}
+ context: ../xc-common/xdbworkers
+ args:
+ BASE_IMAGE: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-xp0-xdbsearchworker:${XP_SITECORE_TAG}
+ ASSETS_IMAGE: ${XC_SITECORE_DOCKER_REGISTRY}sitecore-xc0-assets:${XC_PACKAGES_TAG}
+ CONTENT_PATH: xdbsearchworker/content/inetpub/wwwroot/App_Data/jobs/continuous/IndexWorker
+ image: sitecore-xc0-xdbsearchworker
+ xdbautomationworker:
+ build:
+ isolation: ${ISOLATION}
+ context: ../xc-common/xdbworkers
+ args:
+ BASE_IMAGE: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-xp0-xdbautomationworker:${XP_SITECORE_TAG}
+ ASSETS_IMAGE: ${XC_SITECORE_DOCKER_REGISTRY}sitecore-xc0-assets:${XC_PACKAGES_TAG}
+ CONTENT_PATH: xdbautomationworker/content/inetpub/wwwroot/App_Data/jobs/continuous/AutomationEngine
+ image: sitecore-xc0-xdbautomationworker
diff --git a/sxc/10.3/xc0/docker-compose.yml b/sxc/10.3/xc0/docker-compose.yml
new file mode 100644
index 0000000..a940ea0
--- /dev/null
+++ b/sxc/10.3/xc0/docker-compose.yml
@@ -0,0 +1,522 @@
+services:
+ traefik:
+ isolation: ${TRAEFIK_ISOLATION}
+ image: ${TRAEFIK_IMAGE}
+ command:
+ - "--api.insecure=true"
+ - "--providers.docker.endpoint=npipe:////./pipe/docker_engine"
+ - "--providers.docker.exposedByDefault=false"
+ - "--providers.file.directory=C:/etc/traefik/config/dynamic"
+ - "--entryPoints.websecure.address=:443"
+ - "--entryPoints.websecure.forwardedHeaders.insecure"
+ ports:
+ - "443:443"
+ - "8079:8080"
+ volumes:
+ - source: \\.\pipe\docker_engine
+ target: \\.\pipe\docker_engine
+ type: npipe
+ - ./traefik:C:/etc/traefik
+ depends_on:
+ id:
+ condition: service_started
+ cm:
+ condition: service_started
+ bizfx:
+ condition: service_started
+ engine-authoring:
+ condition: service_started
+ engine-shops:
+ condition: service_started
+ engine-minions:
+ condition: service_started
+ mssql:
+ isolation: ${ISOLATION}
+ image: ${XP_SITECORE_DOCKER_REGISTRY}nonproduction/mssql-developer:2017-${EXTERNAL_IMAGE_TAG_SUFFIX}
+ restart: unless-stopped
+ environment:
+ SA_PASSWORD: ${SQL_SA_PASSWORD}
+ ACCEPT_EULA: "Y"
+ ports:
+ - "14330:1433"
+ volumes:
+ - type: bind
+ source: c:\containers\mssql-data
+ target: c:\data
+ mssql-init:
+ isolation: ${ISOLATION}
+ image: ${XC_NONPRODUCTION_SITECORE_DOCKER_REGISTRY}sitecore-xc1-mssql-init:${XC_PACKAGES_TAG}
+ restart: on-failure
+ environment:
+ SQL_SERVER: ${SQL_SERVER}
+ SQL_ADMIN_LOGIN: ${SQL_SA_LOGIN}
+ SQL_ADMIN_PASSWORD: ${SQL_SA_PASSWORD}
+ SQL_DATABASE_PREFIX: ${SQL_DATABASE_PREFIX}
+ SQL_CUSTOM_DATABASE_PREFIX_UPDATE_FROM: ${SQL_CUSTOM_DATABASE_PREFIX_UPDATE_FROM}
+ SITECORE_ADMIN_PASSWORD: ${SITECORE_ADMIN_PASSWORD}
+ POST_DEPLOYMENT_WAIT_PERIOD: 300
+ XC_SHARED_DB: ${XC_SHARED_DB}
+ XC_SHARED_ARCHIVE_DB: ${XC_SHARED_ARCHIVE_DB}
+ healthcheck:
+ test: ["CMD", "powershell", "-command", "if ([System.Environment]::GetEnvironmentVariable('CommerceDatabasesDeploymentStatus', 'Machine') -eq 'Complete') { exit 0 } else { exit 1}"]
+ start_period: 900s
+ interval: 5s
+ depends_on:
+ mssql:
+ condition: service_healthy
+ solr:
+ isolation: ${ISOLATION}
+ ports:
+ - "8984:8983"
+ image: ${XP_SITECORE_DOCKER_REGISTRY}nonproduction/solr:8.11.2-${EXTERNAL_IMAGE_TAG_SUFFIX}
+ volumes:
+ - type: bind
+ source: c:\containers\solr-data
+ target: c:\data
+ environment:
+ SOLR_MODE: solrcloud
+ healthcheck:
+ test: ["CMD", "powershell", "-command", "try { $$statusCode = (iwr http://solr:8983/solr/admin/cores?action=STATUS -UseBasicParsing).StatusCode; if ($$statusCode -eq 200) { exit 0 } else { exit 1} } catch { exit 1 }"]
+ solr-init:
+ isolation: ${ISOLATION}
+ image: ${XC_NONPRODUCTION_SITECORE_DOCKER_REGISTRY}sitecore-xc0-solr-init:${XC_PACKAGES_TAG}
+ environment:
+ SITECORE_SOLR_CONNECTION_STRING: http://solr:8983/solr
+ SOLR_CORE_PREFIX_NAME: ${SOLR_CORE_PREFIX_NAME}
+ COMMERCE_SOLR_CONNECTION_STRING: http://solr:8983/solr
+ SOLR_COMMERCE_PREFIX_NAME: ${SOLR_COMMERCE_PREFIX_NAME}
+ depends_on:
+ solr:
+ condition: service_healthy
+ redis:
+ isolation: ${ISOLATION}
+ image: ${XP_SITECORE_DOCKER_REGISTRY}redis:3.2.100-${EXTERNAL_IMAGE_TAG_SUFFIX}
+ restart: unless-stopped
+ id:
+ isolation: ${ISOLATION}
+ image: ${XC_NONPRODUCTION_SITECORE_DOCKER_REGISTRY}sitecore-xc-id7:${XC_PACKAGES_TAG}
+ environment:
+ Sitecore_Sitecore__IdentityServer__SitecoreMemberShipOptions__ConnectionString: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Core;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_Sitecore__IdentityServer__AccountOptions__PasswordRecoveryUrl: https://${CM_HOST}/sitecore/login?rc=1
+ Sitecore_Sitecore__IdentityServer__Clients__PasswordClient__ClientSecrets__ClientSecret1: ${SITECORE_IDSECRET}
+ Sitecore_Sitecore__IdentityServer__Clients__DefaultClient__AllowedCorsOrigins__AllowedCorsOriginsGroup1: https://${CM_HOST}
+ Sitecore_Sitecore__IdentityServer__CertificateRawData: ${SITECORE_ID_CERTIFICATE}
+ Sitecore_Sitecore__IdentityServer__PublicOrigin: https://${ID_HOST}
+ Sitecore_Sitecore__IdentityServer__CertificateRawDataPassword: ${SITECORE_ID_CERTIFICATE_PASSWORD}
+ Sitecore_License: ${SITECORE_LICENSE}
+ Sitecore_Sitecore__IdentityServer__Clients__CommerceClient__AllowedCorsOrigins__AllowedCorsOriginsGroup1: https://${BIZFX_HOST}|https://${AUTHORING_HOST}
+ Sitecore_Sitecore__IdentityServer__Clients__CommerceEngineConnectClient__ClientId: ${XC_ENGINE_CONNECT_CLIENTID}
+ Sitecore_Sitecore__IdentityServer__Clients__CommerceEngineConnectClient__AllowedCorsOrigins__AllowedCorsOriginsGroup1: https://${CM_HOST}
+ Sitecore_Sitecore__IdentityServer__Clients__CommerceEngineConnectClient__ClientSecrets__ClientSecret1: ${XC_IDENTITY_COMMERCEENGINECONNECTCLIENT_CLIENTSECRET1}
+ healthcheck:
+ test: ["CMD", "pwsh", "-command", "C:/Healthchecks/Healthcheck.ps1"]
+ timeout: 300s
+ depends_on:
+ mssql-init:
+ condition: service_healthy
+ labels:
+ - "traefik.enable=true"
+ - "traefik.http.routers.id-secure.entrypoints=websecure"
+ - "traefik.http.routers.id-secure.rule=Host(`${ID_HOST}`)"
+ - "traefik.http.routers.id-secure.tls=true"
+ cm:
+ isolation: ${ISOLATION}
+ image: ${XC_NONPRODUCTION_SITECORE_DOCKER_REGISTRY}sitecore-xc0-cm:${XC_PACKAGES_TAG}
+ depends_on:
+ id:
+ condition: service_started
+ xconnect:
+ condition: service_started
+ environment:
+ Sitecore_ConnectionStrings_Core: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Core;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Security: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Core;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Master: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Master;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Web: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Web;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Messaging: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Messaging;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Xdb.Processing.Pools: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Processing.pools;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Xdb.Referencedata: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Referencedata;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Xdb.Processing.Tasks: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Processing.tasks;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_ExperienceForms: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.ExperienceForms;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Exm.Master: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Exm.master;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Reporting: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Reporting;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Sitecore.Reporting.Client: http://xconnect
+ Sitecore_ConnectionStrings_Cortex.Processing.Engine: http://xconnect
+ Sitecore_ConnectionStrings_Solr.Search: http://solr:8983/solr;solrCloud=true
+ Sitecore_ConnectionStrings_SitecoreIdentity.Secret: ${SITECORE_IDSECRET}
+ Sitecore_ConnectionStrings_XConnect.Collection: http://xconnect
+ Sitecore_ConnectionStrings_Xdb.MarketingAutomation.Operations.Client: http://xconnect
+ Sitecore_ConnectionStrings_Xdb.MarketingAutomation.Reporting.Client: http://xconnect
+ Sitecore_ConnectionStrings_Xdb.ReferenceData.Client: http://xconnect
+ Sitecore_AppSettings_Telerik.AsyncUpload.ConfigurationEncryptionKey: ${TELERIK_ENCRYPTION_KEY}
+ Sitecore_AppSettings_Telerik.Upload.ConfigurationHashKey: ${TELERIK_ENCRYPTION_KEY}
+ Sitecore_AppSettings_Telerik.Web.UI.DialogParametersEncryptionKey: ${TELERIK_ENCRYPTION_KEY}
+ Sitecore_License: ${SITECORE_LICENSE}
+ Sitecore_GraphQL_Enabled: ${SITECORE_GRAPHQL_ENABLED}
+ Sitecore_GraphQL_ExposePlayground: ${SITECORE_GRAPHQL_EXPOSEPLAYGROUND}
+ Sitecore_GraphQL_UploadMediaOptions_EncryptionKey: ${SITECORE_GRAPHQL_UPLOADMEDIAOPTIONS_ENCRYPTIONKEY}
+ Sitecore_Identity_Server_Authority: https://${ID_HOST}
+ Sitecore_Identity_Server_InternalAuthority: http://id
+ Sitecore_Identity_Server_CallbackAuthority: https://${CM_HOST}
+ Sitecore_Identity_Server_Require_Https: "false"
+ Sitecore_Analytics_Forwarded_Request_Http_Header: X-Forwarded-For
+ SOLR_CORE_PREFIX_NAME: ${SOLR_CORE_PREFIX_NAME}
+ MEDIA_REQUEST_PROTECTION_SHARED_SECRET: ${MEDIA_REQUEST_PROTECTION_SHARED_SECRET}
+ LOG_LEVEL_VALUE: ${LOG_LEVEL_VALUE}
+ Sitecore_xc_Shops_Url: http://engine-authoring:${XC_ENGINE_PORT}/api/
+ Sitecore_xc_Ops_Url: http://engine-authoring:${XC_ENGINE_PORT}/commerceops/
+ Sitecore_xc_Minions_Url: http://engine-minions:${XC_ENGINE_PORT}/commerceops/
+ Sitecore_xc_Client_Secret_Hash: ${XC_IDENTITY_COMMERCEENGINECONNECTCLIENT_CLIENTSECRET1}
+ Sitecore_xc_ConnectionStrings_Redis: redis:6379,defaultDatabase=1,allowAdmin=true,syncTimeout=3600000
+ healthcheck:
+ test: ["CMD", "powershell", "-command", "C:/Healthchecks/Healthcheck.ps1"]
+ timeout: 300s
+ labels:
+ - "traefik.enable=true"
+ - "traefik.http.middlewares.force-STS-Header.headers.forceSTSHeader=true"
+ - "traefik.http.middlewares.force-STS-Header.headers.stsSeconds=31536000"
+ - "traefik.http.routers.cm-secure.entrypoints=websecure"
+ - "traefik.http.routers.cm-secure.rule=Host(`${CM_HOST}`)"
+ - "traefik.http.routers.cm-secure.tls=true"
+ - "traefik.http.routers.cm-secure.middlewares=force-STS-Header"
+ volumes:
+ - C:\containers\cm\domains-shared:C:\inetpub\wwwroot\App_Config\Security-Shared:RW
+ - type: bind
+ source: .\device-detection-data
+ target: C:\inetpub\wwwroot\App_Data\DeviceDetection
+ xconnect:
+ isolation: ${ISOLATION}
+ image: ${XC_NONPRODUCTION_SITECORE_DOCKER_REGISTRY}sitecore-xc0-xconnect:${XC_PACKAGES_TAG}
+ ports:
+ - "8081:80"
+ depends_on:
+ mssql-init:
+ condition: service_healthy
+ solr-init:
+ condition: service_started
+ environment:
+ Sitecore_License: ${SITECORE_LICENSE}
+ Sitecore_ConnectionStrings_Messaging: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Messaging;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Processing.Engine.Storage: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Processing.Engine.Storage;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Processing.Engine.Tasks: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Processing.Engine.Tasks;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Reporting: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Reporting;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Xdb.Marketingautomation: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Marketingautomation;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Xdb.Processing.Pools: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Processing.pools;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Xdb.Referencedata: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Referencedata;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Collection: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Xdb.Collection.ShardMapManager;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_SolrCore: http://solr:8983/solr/${SOLR_CORE_PREFIX_NAME}_xdb;solrCloud=true
+ Sitecore_Sitecore:XConnect:CollectionSearch:Services:Solr.SolrReaderSettings:Options:RequireHttps: 'false'
+ Sitecore_Sitecore:XConnect:CollectionSearch:Services:XConnectSolrHealthCheckServicesConfiguration:Options:RequireHttps: 'false'
+ Sitecore_Sitecore:XConnect:SearchIndexer:Services:Solr.SolrReaderSettings:Options:RequireHttps: 'false'
+ Sitecore_Sitecore:XConnect:SearchIndexer:Services:Solr.SolrWriterSettings:Options:RequireHttps: 'false'
+ healthcheck:
+ test: ["CMD", "powershell", "-command", "C:/Healthchecks/Healthcheck.ps1"]
+ timeout: 300s
+ xdbsearchworker:
+ isolation: ${ISOLATION}
+ image: ${XC_NONPRODUCTION_SITECORE_DOCKER_REGISTRY}sitecore-xc0-xdbsearchworker:${XC_PACKAGES_TAG}
+ depends_on:
+ xconnect:
+ condition: service_healthy
+ restart: unless-stopped
+ environment:
+ Sitecore_ConnectionStrings_Collection: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Xdb.Collection.ShardMapManager;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_SolrCore: http://solr:8983/solr/${SOLR_CORE_PREFIX_NAME}_xdb;solrCloud=true
+ Sitecore_License: ${SITECORE_LICENSE}
+ Sitecore_Sitecore:XConnect:SearchIndexer:Services:Solr.SolrReaderSettings:Options:RequireHttps: 'false'
+ Sitecore_Sitecore:XConnect:SearchIndexer:Services:Solr.SolrWriterSettings:Options:RequireHttps: 'false'
+ Sitecore_Sitecore:XConnect:CollectionSearch:Services:XConnectSolrHealthCheckServicesConfiguration:Options:RequireHttps: 'false'
+ healthcheck:
+ test: ["CMD", "powershell", "-command", "C:/Healthchecks/Healthcheck.ps1 -Port 8080"]
+ timeout: 300s
+ xdbautomationworker:
+ isolation: ${ISOLATION}
+ image: ${XC_NONPRODUCTION_SITECORE_DOCKER_REGISTRY}sitecore-xc0-xdbautomationworker:${XC_PACKAGES_TAG}
+ depends_on:
+ xconnect:
+ condition: service_healthy
+ restart: unless-stopped
+ environment:
+ Sitecore_ConnectionStrings_XConnect.Collection: http://xconnect
+ Sitecore_ConnectionStrings_Xdb.Marketingautomation: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Marketingautomation;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Xdb.Referencedata: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Referencedata;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Messaging: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Messaging;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_License: ${SITECORE_LICENSE}
+ healthcheck:
+ test: ["CMD", "powershell", "-command", "C:/Healthchecks/Healthcheck.ps1 -Port 8080"]
+ timeout: 300s
+ cortexprocessingworker:
+ isolation: ${ISOLATION}
+ image: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-xp0-cortexprocessingworker:${XP_SITECORE_TAG}
+ depends_on:
+ xconnect:
+ condition: service_healthy
+ restart: unless-stopped
+ environment:
+ Sitecore_ConnectionStrings_Processing.Engine.Storage: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Processing.Engine.Storage;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Processing.Engine.Tasks: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Processing.Engine.Tasks;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_XConnect.Collection: http://xconnect
+ Sitecore_ConnectionStrings_XConnect.Configuration: http://xconnect
+ Sitecore_ConnectionStrings_XConnect.Search: http://xconnect
+ Sitecore_ConnectionStrings_Reporting: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Reporting;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_License: ${SITECORE_LICENSE}
+ healthcheck:
+ test: ["CMD", "powershell", "-command", "C:/Healthchecks/Healthcheck.ps1 -Port 8080"]
+ timeout: 300s
+ bizfx:
+ isolation: ${ISOLATION}
+ image: ${XC_NONPRODUCTION_SITECORE_DOCKER_REGISTRY}sitecore-xc-bizfx:${XC_PACKAGES_TAG}
+ depends_on:
+ engine-authoring:
+ condition: service_started
+ engine-minions:
+ condition: service_started
+ id:
+ condition: service_started
+ environment:
+ sitecore_xc_bizfx_bizfx_url: https://${BIZFX_HOST}
+ sitecore_xc_bizfx_authoring_url: https://${AUTHORING_HOST}
+ sitecore_xc_bizfx_identity_server_url: https://${ID_HOST}
+ sitecore_xc_bizfx_default_language: ${XC_BIZFX_DEFAULT_LANGUAGE}
+ sitecore_xc_bizfx_default_currency: ${XC_BIZFX_DEFAULT_CURRENCY}
+ sitecore_xc_bizfx_default_shopname: ${XC_BIZFX_DEFAULT_SHOPNAME}
+ labels:
+ - "traefik.enable=true"
+ - "traefik.http.middlewares.force-STS-Header.headers.forceSTSHeader=true"
+ - "traefik.http.middlewares.force-STS-Header.headers.stsSeconds=31536000"
+ - "traefik.http.routers.bizfx-secure.entrypoints=websecure"
+ - "traefik.http.routers.bizfx-secure.rule=Host(`${BIZFX_HOST}`)"
+ - "traefik.http.routers.bizfx-secure.tls=true"
+ - "traefik.http.routers.bizfx-secure.middlewares=force-STS-Header"
+ engine-authoring:
+ isolation: ${ISOLATION}
+ image: ${XC_NONPRODUCTION_SITECORE_DOCKER_REGISTRY}sitecore-xc-engine:${XC_PACKAGES_TAG}
+ depends_on:
+ mssql-init:
+ condition: service_healthy
+ solr:
+ condition: service_started
+ id:
+ condition: service_started
+ redis:
+ condition: service_started
+ cm:
+ condition: service_started
+ environment:
+ COMMERCEENGINE_AppSettings__DeploymentId: HabitatAuthoring01
+ COMMERCEENGINE_AppSettings__EnvironmentName: HabitatAuthoring
+ COMMERCEENGINE_AppSettings__SitecoreIdentityServerUrl: "https://${ID_HOST}"
+ COMMERCEENGINE_AppSettings__InternalSitecoreIdentityServerUrl: "http://id"
+ COMMERCEENGINE_AppSettings__AllowedOrigins: "https://${BIZFX_HOST}|https://{CM_HOST}"
+ COMMERCEENGINE_AppSettings__AntiForgeryEnabled: "false"
+ COMMERCEENGINE_AppSettings__UseHttpsInKestrel: "false"
+ COMMERCEENGINE_Caching__Redis__Options__Configuration: redis:6379,ssl=False,abortConnect=False
+ COMMERCEENGINE_Caching__Redis__Options__InstanceName: Redis
+ COMMERCEENGINE_CommerceConnector__ClientId: ${XC_ENGINE_CONNECT_CLIENTID}
+ COMMERCEENGINE_GlobalDatabaseName: ${XC_GLOBAL_DB}
+ COMMERCEENGINE_GlobalDatabaseServer: ${SQL_SERVER}
+ COMMERCEENGINE_GlobalDatabaseUserName: ${SQL_SA_LOGIN}
+ COMMERCEENGINE_GlobalDatabasePassword: ${SQL_SA_PASSWORD}
+ COMMERCEENGINE_GlobalTrustedConnection: "${XC_GLOBAL_DB_TRUSTED_CONNECTION}"
+ COMMERCEENGINE_SharedDatabaseName: ${XC_SHARED_DB}
+ COMMERCEENGINE_SharedArchiveDatabaseName: ${XC_SHARED_ARCHIVE_DB}
+ COMMERCEENGINE_SharedDatabaseServer: ${SQL_SERVER}
+ COMMERCEENGINE_SharedDatabaseUserName: ${SQL_SA_LOGIN}
+ COMMERCEENGINE_SharedDatabasePassword: ${SQL_SA_PASSWORD}
+ COMMERCEENGINE_SharedTrustedConnection: "${XC_SHARED_DB_TRUSTED_CONNECTION}"
+ COMMERCEENGINE_SitecoreHost: cm
+ COMMERCEENGINE_SitecoreDatabase: master
+ COMMERCEENGINE_SitecoreUsername: admin
+ COMMERCEENGINE_SitecoreDomain: sitecore
+ COMMERCEENGINE_SitecorePassword: ${SITECORE_ADMIN_PASSWORD}
+ COMMERCEENGINE_SitecoreProtocol: http
+ COMMERCEENGINE_SitecoreAllowAnonymousUser: "true"
+ COMMERCEENGINE_SitecoreExternalProtocol: https
+ COMMERCEENGINE_SitecoreExternalHost: ${CM_HOST}
+ COMMERCEENGINE_SolrUrl: http://solr:8983/solr
+ COMMERCEENGINE_IsSolrCloud: "true"
+ COMMERCEENGINE_StorefrontIndexPrefix_web_index: ${SOLR_CORE_PREFIX_NAME}_web_index
+ COMMERCEENGINE_StorefrontIndexPrefix_master_index: ${SOLR_CORE_PREFIX_NAME}_master_index
+ COMMERCEENGINE_SearchIndexPrefixOrdersScope: ${SOLR_COMMERCE_PREFIX_NAME}_OrdersScope
+ COMMERCEENGINE_SearchIndexPrefixOrdersScope-Rebuild: ${SOLR_COMMERCE_PREFIX_NAME}_OrdersScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixCustomersScope: ${SOLR_COMMERCE_PREFIX_NAME}_CustomersScope
+ COMMERCEENGINE_SearchIndexPrefixCustomersScope-Rebuild: ${SOLR_COMMERCE_PREFIX_NAME}_CustomersScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixCatalogItemsScope: ${SOLR_COMMERCE_PREFIX_NAME}_CatalogItemsScope
+ COMMERCEENGINE_SearchIndexPrefixCatalogItemsScope-Rebuild: ${SOLR_COMMERCE_PREFIX_NAME}_CatalogItemsScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixPromotionsScope: ${SOLR_COMMERCE_PREFIX_NAME}_PromotionsScope
+ COMMERCEENGINE_SearchIndexPrefixPromotionsScope-Rebuild: ${SOLR_COMMERCE_PREFIX_NAME}_PromotionsScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixPriceCardsScope: ${SOLR_COMMERCE_PREFIX_NAME}_PriceCardsScope
+ COMMERCEENGINE_SearchIndexPrefixPriceCardsScope-Rebuild: ${SOLR_COMMERCE_PREFIX_NAME}_PriceCardsScope-Rebuild
+ COMMERCEENGINE_EngineAuthoringUrl: https://${AUTHORING_HOST}
+ COMMERCEENGINE_EngineShopsUrl: https://${SHOPS_HOST}
+ COMMERCEENGINE_EngineMinionsUrl: https://${MINIONS_HOST}
+ COMMERCEENGINE_BraintreeEnvironment: ${XC_ENGINE_BRAINTREEENVIRONMENT}
+ COMMERCEENGINE_BraintreeMerchantId: ${XC_ENGINE_BRAINTREEMERCHANTID}
+ COMMERCEENGINE_BraintreePublicKey: ${XC_ENGINE_BRAINTREEPUBLICKEY}
+ COMMERCEENGINE_BraintreePrivateKey: ${XC_ENGINE_BRAINTREEPRIVATEKEY}
+ volumes:
+ - C:\containers\engine\catalogs:C:\engine\catalogs:RO
+ labels:
+ - "traefik.enable=true"
+ - "traefik.http.middlewares.force-STS-Header.headers.forceSTSHeader=true"
+ - "traefik.http.middlewares.force-STS-Header.headers.stsSeconds=31536000"
+ - "traefik.http.routers.authoring-secure.entrypoints=websecure"
+ - "traefik.http.routers.authoring-secure.rule=Host(`${AUTHORING_HOST}`)"
+ - "traefik.http.routers.authoring-secure.tls=true"
+ - "traefik.http.routers.authoring-secure.middlewares=force-STS-Header"
+ healthcheck:
+ test: ["CMD", "powershell", "-command", "C:/Healthchecks/Healthcheck.ps1 -Port ${XC_ENGINE_PORT}"]
+ timeout: 300s
+ engine-shops:
+ isolation: ${ISOLATION}
+ image: ${XC_NONPRODUCTION_SITECORE_DOCKER_REGISTRY}sitecore-xc-engine:${XC_PACKAGES_TAG}
+ depends_on:
+ mssql-init:
+ condition: service_healthy
+ solr:
+ condition: service_started
+ id:
+ condition: service_started
+ redis:
+ condition: service_started
+ cm:
+ condition: service_started
+ environment:
+ COMMERCEENGINE_AppSettings__DeploymentId: HabitatShops01
+ COMMERCEENGINE_AppSettings__EnvironmentName: HabitatShops
+ COMMERCEENGINE_AppSettings__SitecoreIdentityServerUrl: "https://${ID_HOST}"
+ COMMERCEENGINE_AppSettings__InternalSitecoreIdentityServerUrl: "http://id"
+ COMMERCEENGINE_AppSettings__AllowedOrigins: "https://${BIZFX_HOST}|https://{CM_HOST}"
+ COMMERCEENGINE_AppSettings__AntiForgeryEnabled: "false"
+ COMMERCEENGINE_AppSettings__UseHttpsInKestrel: "false"
+ COMMERCEENGINE_Caching__Redis__Options__Configuration: redis:6379,ssl=False,abortConnect=False
+ COMMERCEENGINE_Caching__Redis__Options__InstanceName: Redis
+ COMMERCEENGINE_CommerceConnector__ClientId: ${XC_ENGINE_CONNECT_CLIENTID}
+ COMMERCEENGINE_GlobalDatabaseName: ${XC_GLOBAL_DB}
+ COMMERCEENGINE_GlobalDatabaseServer: ${SQL_SERVER}
+ COMMERCEENGINE_GlobalDatabaseUserName: ${SQL_SA_LOGIN}
+ COMMERCEENGINE_GlobalDatabasePassword: ${SQL_SA_PASSWORD}
+ COMMERCEENGINE_GlobalTrustedConnection: "${XC_GLOBAL_DB_TRUSTED_CONNECTION}"
+ COMMERCEENGINE_SharedDatabaseName: ${XC_SHARED_DB}
+ COMMERCEENGINE_SharedArchiveDatabaseName: ${XC_SHARED_ARCHIVE_DB}
+ COMMERCEENGINE_SharedDatabaseServer: ${SQL_SERVER}
+ COMMERCEENGINE_SharedDatabaseUserName: ${SQL_SA_LOGIN}
+ COMMERCEENGINE_SharedDatabasePassword: ${SQL_SA_PASSWORD}
+ COMMERCEENGINE_SharedTrustedConnection: "${XC_SHARED_DB_TRUSTED_CONNECTION}"
+ COMMERCEENGINE_SitecoreHost: cm
+ COMMERCEENGINE_SitecoreDatabase: master
+ COMMERCEENGINE_SitecoreUsername: admin
+ COMMERCEENGINE_SitecoreDomain: sitecore
+ COMMERCEENGINE_SitecorePassword: ${SITECORE_ADMIN_PASSWORD}
+ COMMERCEENGINE_SitecoreProtocol: http
+ COMMERCEENGINE_SitecoreAllowAnonymousUser: "true"
+ COMMERCEENGINE_SitecoreExternalProtocol: https
+ COMMERCEENGINE_SitecoreExternalHost: ${CM_HOST}
+ COMMERCEENGINE_SolrUrl: http://solr:8983/solr
+ COMMERCEENGINE_IsSolrCloud: "true"
+ COMMERCEENGINE_StorefrontIndexPrefix_web_index: ${SOLR_CORE_PREFIX_NAME}_web_index
+ COMMERCEENGINE_StorefrontIndexPrefix_master_index: ${SOLR_CORE_PREFIX_NAME}_master_index
+ COMMERCEENGINE_SearchIndexPrefixOrdersScope: ${SOLR_COMMERCE_PREFIX_NAME}_OrdersScope
+ COMMERCEENGINE_SearchIndexPrefixOrdersScope-Rebuild: ${SOLR_COMMERCE_PREFIX_NAME}_OrdersScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixCustomersScope: ${SOLR_COMMERCE_PREFIX_NAME}_CustomersScope
+ COMMERCEENGINE_SearchIndexPrefixCustomersScope-Rebuild: ${SOLR_COMMERCE_PREFIX_NAME}_CustomersScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixCatalogItemsScope: ${SOLR_COMMERCE_PREFIX_NAME}_CatalogItemsScope
+ COMMERCEENGINE_SearchIndexPrefixCatalogItemsScope-Rebuild: ${SOLR_COMMERCE_PREFIX_NAME}_CatalogItemsScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixPromotionsScope: ${SOLR_COMMERCE_PREFIX_NAME}_PromotionsScope
+ COMMERCEENGINE_SearchIndexPrefixPromotionsScope-Rebuild: ${SOLR_COMMERCE_PREFIX_NAME}_PromotionsScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixPriceCardsScope: ${SOLR_COMMERCE_PREFIX_NAME}_PriceCardsScope
+ COMMERCEENGINE_SearchIndexPrefixPriceCardsScope-Rebuild: ${SOLR_COMMERCE_PREFIX_NAME}_PriceCardsScope-Rebuild
+ COMMERCEENGINE_EngineAuthoringUrl: https://${AUTHORING_HOST}
+ COMMERCEENGINE_EngineShopsUrl: https://${SHOPS_HOST}
+ COMMERCEENGINE_EngineMinionsUrl: https://${MINIONS_HOST}
+ COMMERCEENGINE_BraintreeEnvironment: ${XC_ENGINE_BRAINTREEENVIRONMENT}
+ COMMERCEENGINE_BraintreeMerchantId: ${XC_ENGINE_BRAINTREEMERCHANTID}
+ COMMERCEENGINE_BraintreePublicKey: ${XC_ENGINE_BRAINTREEPUBLICKEY}
+ COMMERCEENGINE_BraintreePrivateKey: ${XC_ENGINE_BRAINTREEPRIVATEKEY}
+ labels:
+ - "traefik.enable=true"
+ - "traefik.http.middlewares.force-STS-Header.headers.forceSTSHeader=true"
+ - "traefik.http.middlewares.force-STS-Header.headers.stsSeconds=31536000"
+ - "traefik.http.routers.shops-secure.entrypoints=websecure"
+ - "traefik.http.routers.shops-secure.rule=Host(`${SHOPS_HOST}`)"
+ - "traefik.http.routers.shops-secure.tls=true"
+ - "traefik.http.routers.shops-secure.middlewares=force-STS-Header"
+ healthcheck:
+ test: ["CMD", "powershell", "-command", "C:/Healthchecks/Healthcheck.ps1 -Port ${XC_ENGINE_PORT}"]
+ timeout: 300s
+ engine-minions:
+ isolation: ${ISOLATION}
+ image: ${XC_NONPRODUCTION_SITECORE_DOCKER_REGISTRY}sitecore-xc-engine:${XC_PACKAGES_TAG}
+ depends_on:
+ mssql-init:
+ condition: service_healthy
+ solr:
+ condition: service_started
+ id:
+ condition: service_started
+ redis:
+ condition: service_started
+ cm:
+ condition: service_started
+ environment:
+ COMMERCEENGINE_AppSettings__DeploymentId: HabitatMinions01
+ COMMERCEENGINE_AppSettings__EnvironmentName: HabitatMinions
+ COMMERCEENGINE_AppSettings__SitecoreIdentityServerUrl: "https://${ID_HOST}"
+ COMMERCEENGINE_AppSettings__InternalSitecoreIdentityServerUrl: "http://id"
+ COMMERCEENGINE_AppSettings__AllowedOrigins: "https://${BIZFX_HOST}|https://{CM_HOST}"
+ COMMERCEENGINE_AppSettings__AntiForgeryEnabled: "false"
+ COMMERCEENGINE_AppSettings__UseHttpsInKestrel: "false"
+ COMMERCEENGINE_Caching__Redis__Options__Configuration: redis:6379,ssl=False,abortConnect=False
+ COMMERCEENGINE_Caching__Redis__Options__InstanceName: Redis
+ COMMERCEENGINE_CommerceConnector__ClientId: ${XC_ENGINE_CONNECT_CLIENTID}
+ COMMERCEENGINE_GlobalDatabaseName: ${XC_GLOBAL_DB}
+ COMMERCEENGINE_GlobalDatabaseServer: ${SQL_SERVER}
+ COMMERCEENGINE_GlobalDatabaseUserName: ${SQL_SA_LOGIN}
+ COMMERCEENGINE_GlobalDatabasePassword: ${SQL_SA_PASSWORD}
+ COMMERCEENGINE_GlobalTrustedConnection: "${XC_GLOBAL_DB_TRUSTED_CONNECTION}"
+ COMMERCEENGINE_SharedDatabaseName: ${XC_SHARED_DB}
+ COMMERCEENGINE_SharedArchiveDatabaseName: ${XC_SHARED_ARCHIVE_DB}
+ COMMERCEENGINE_SharedDatabaseServer: ${SQL_SERVER}
+ COMMERCEENGINE_SharedDatabaseUserName: ${SQL_SA_LOGIN}
+ COMMERCEENGINE_SharedDatabasePassword: ${SQL_SA_PASSWORD}
+ COMMERCEENGINE_SharedTrustedConnection: "${XC_SHARED_DB_TRUSTED_CONNECTION}"
+ COMMERCEENGINE_SitecoreHost: cm
+ COMMERCEENGINE_SitecoreDatabase: master
+ COMMERCEENGINE_SitecoreUsername: admin
+ COMMERCEENGINE_SitecoreDomain: sitecore
+ COMMERCEENGINE_SitecorePassword: ${SITECORE_ADMIN_PASSWORD}
+ COMMERCEENGINE_SitecoreProtocol: http
+ COMMERCEENGINE_SitecoreAllowAnonymousUser: "true"
+ COMMERCEENGINE_SitecoreExternalProtocol: https
+ COMMERCEENGINE_SitecoreExternalHost: ${CM_HOST}
+ COMMERCEENGINE_SolrUrl: http://solr:8983/solr
+ COMMERCEENGINE_IsSolrCloud: "true"
+ COMMERCEENGINE_StorefrontIndexPrefix_web_index: ${SOLR_CORE_PREFIX_NAME}_web_index
+ COMMERCEENGINE_StorefrontIndexPrefix_master_index: ${SOLR_CORE_PREFIX_NAME}_master_index
+ COMMERCEENGINE_SearchIndexPrefixOrdersScope: ${SOLR_COMMERCE_PREFIX_NAME}_OrdersScope
+ COMMERCEENGINE_SearchIndexPrefixOrdersScope-Rebuild: ${SOLR_COMMERCE_PREFIX_NAME}_OrdersScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixCustomersScope: ${SOLR_COMMERCE_PREFIX_NAME}_CustomersScope
+ COMMERCEENGINE_SearchIndexPrefixCustomersScope-Rebuild: ${SOLR_COMMERCE_PREFIX_NAME}_CustomersScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixCatalogItemsScope: ${SOLR_COMMERCE_PREFIX_NAME}_CatalogItemsScope
+ COMMERCEENGINE_SearchIndexPrefixCatalogItemsScope-Rebuild: ${SOLR_COMMERCE_PREFIX_NAME}_CatalogItemsScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixPromotionsScope: ${SOLR_COMMERCE_PREFIX_NAME}_PromotionsScope
+ COMMERCEENGINE_SearchIndexPrefixPromotionsScope-Rebuild: ${SOLR_COMMERCE_PREFIX_NAME}_PromotionsScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixPriceCardsScope: ${SOLR_COMMERCE_PREFIX_NAME}_PriceCardsScope
+ COMMERCEENGINE_SearchIndexPrefixPriceCardsScope-Rebuild: ${SOLR_COMMERCE_PREFIX_NAME}_PriceCardsScope-Rebuild
+ COMMERCEENGINE_EngineAuthoringUrl: https://${AUTHORING_HOST}
+ COMMERCEENGINE_EngineShopsUrl: https://${SHOPS_HOST}
+ COMMERCEENGINE_EngineMinionsUrl: https://${MINIONS_HOST}
+ COMMERCEENGINE_BraintreeEnvironment: ${XC_ENGINE_BRAINTREEENVIRONMENT}
+ COMMERCEENGINE_BraintreeMerchantId: ${XC_ENGINE_BRAINTREEMERCHANTID}
+ COMMERCEENGINE_BraintreePublicKey: ${XC_ENGINE_BRAINTREEPUBLICKEY}
+ COMMERCEENGINE_BraintreePrivateKey: ${XC_ENGINE_BRAINTREEPRIVATEKEY}
+ labels:
+ - "traefik.enable=true"
+ - "traefik.http.middlewares.force-STS-Header.headers.forceSTSHeader=true"
+ - "traefik.http.middlewares.force-STS-Header.headers.stsSeconds=31536000"
+ - "traefik.http.routers.minions-secure.entrypoints=websecure"
+ - "traefik.http.routers.minions-secure.rule=Host(`${MINIONS_HOST}`)"
+ - "traefik.http.routers.minions-secure.tls=true"
+ - "traefik.http.routers.minions-secure.middlewares=force-STS-Header"
+ healthcheck:
+ test: ["CMD", "powershell", "-command", "C:/Healthchecks/Healthcheck.ps1 -Port ${XC_ENGINE_PORT}"]
+ timeout: 300s
\ No newline at end of file
diff --git a/sxc/10.3/xc0/traefik/certs/readme b/sxc/10.3/xc0/traefik/certs/readme
new file mode 100644
index 0000000..c0519c8
--- /dev/null
+++ b/sxc/10.3/xc0/traefik/certs/readme
@@ -0,0 +1,13 @@
+Add TLS certificates for xc0cd.localhost, xc0cm.localhost, xc0id.localhost, bizfx.localhost, authoring.localhos, shops.localhost, and minions.localhost hosts to this folder:
+ xc0cm.localhost.crt
+ xc0cm.localhost.key
+ xc0id.localhost.crt
+ xc0id.localhost.key
+ bizfx.localhost.crt
+ bizfx.localhost.key
+ authoring.localhost.crt
+ authoring.localhost.key
+ shops.localhost.crt
+ shops.localhost.key
+ minions.localhost.crt
+ minions.localhost.key
\ No newline at end of file
diff --git a/sxc/10.3/xc0/traefik/config/dynamic/certs_config.yaml b/sxc/10.3/xc0/traefik/config/dynamic/certs_config.yaml
new file mode 100644
index 0000000..777db0b
--- /dev/null
+++ b/sxc/10.3/xc0/traefik/config/dynamic/certs_config.yaml
@@ -0,0 +1,14 @@
+tls:
+ certificates:
+ - certFile: C:\etc\traefik\certs\xc0cm.localhost.crt
+ keyFile: C:\etc\traefik\certs\xc0cm.localhost.key
+ - certFile: C:\etc\traefik\certs\xc0id.localhost.crt
+ keyFile: C:\etc\traefik\certs\xc0id.localhost.key
+ - certFile: C:\etc\traefik\certs\bizfx.localhost.crt
+ keyFile: C:\etc\traefik\certs\bizfx.localhost.key
+ - certFile: C:\etc\traefik\certs\authoring.localhost.crt
+ keyFile: C:\etc\traefik\certs\authoring.localhost.key
+ - certFile: C:\etc\traefik\certs\shops.localhost.crt
+ keyFile: C:\etc\traefik\certs\shops.localhost.key
+ - certFile: C:\etc\traefik\certs\minions.localhost.crt
+ keyFile: C:\etc\traefik\certs\minions.localhost.key
diff --git a/sxc/10.3/xc0/xconnect/keep.txt b/sxc/10.3/xc0/xconnect/keep.txt
new file mode 100644
index 0000000..e69de29
diff --git a/sxc/10.3/xc1-cxa/.env b/sxc/10.3/xc1-cxa/.env
new file mode 100644
index 0000000..7ac0405
--- /dev/null
+++ b/sxc/10.3/xc1-cxa/.env
@@ -0,0 +1,67 @@
+BASE_SITECORE_DOCKER_REGISTRY=scr.sitecore.com/base/
+
+XP_SITECORE_DOCKER_REGISTRY=scr.sitecore.com/sxp/
+XP_SITECORE_TAG=10.3-ltsc2019
+EXTERNAL_IMAGE_TAG_SUFFIX=ltsc2019
+
+MODULES_SITECORE_DOCKER_REGISTRY=scr.sitecore.com/sxp/modules/
+SPE_SITECORE_TAG=6.4-1809
+SXA_SITECORE_TAG=10.3-1809
+
+XC_NONPRODUCTION_SITECORE_DOCKER_REGISTRY=scr.sitecore.com/sxc/nonproduction/
+XC_SITECORE_DOCKER_REGISTRY=scr.sitecore.com/sxc/
+XC_PACKAGES_TAG=10.3-ltsc2019
+
+TRAEFIK_IMAGE=traefik:v2.5.3-windowsservercore-1809
+TRAEFIK_ISOLATION=hyperv
+
+ISOLATION=default
+
+CD_HOST=xc1-cxacd.localhost
+CM_HOST=xc1-cxacm.localhost
+ID_HOST=xc1-cxaid.localhost
+
+AUTHORING_HOST=authoring.localhost
+SHOPS_HOST=shops.localhost
+MINIONS_HOST=minions.localhost
+
+BIZFX_HOST=bizfx.localhost
+
+SQL_SERVER=mssql
+SQL_SA_LOGIN=sa
+SQL_SA_PASSWORD=Password12345
+SQL_DATABASE_PREFIX=Sitecore
+SQL_CUSTOM_DATABASE_PREFIX_UPDATE_FROM=
+SITECORE_ADMIN_PASSWORD=Password12345
+
+SOLR_CORE_PREFIX_NAME=sitecore
+SOLR_COMMERCE_PREFIX_NAME=commerce
+MEDIA_REQUEST_PROTECTION_SHARED_SECRET=
+LOG_LEVEL_VALUE=INFO
+
+XC_GLOBAL_DB=SitecoreCommerce_Global
+XC_GLOBAL_DB_TRUSTED_CONNECTION=false
+XC_SHARED_DB=SitecoreCommerce_SharedEnvironments
+XC_SHARED_DB_TRUSTED_CONNECTION=false
+XC_SHARED_ARCHIVE_DB=SitecoreCommerce_ArchiveSharedEnvironments
+
+XC_ENGINE_PORT=5000
+XC_ENGINE_BRAINTREEENVIRONMENT=
+XC_ENGINE_BRAINTREEMERCHANTID=
+XC_ENGINE_BRAINTREEPUBLICKEY=
+XC_ENGINE_BRAINTREEPRIVATEKEY=
+XC_BIZFX_DEFAULT_LANGUAGE=en
+XC_BIZFX_DEFAULT_CURRENCY=USD
+XC_BIZFX_DEFAULT_SHOPNAME=CommerceEngineDefaultStorefront
+XC_ENGINE_CONNECT_CLIENTID=CommerceEngineConnect
+XC_IDENTITY_COMMERCEENGINECONNECTCLIENT_CLIENTSECRET1=
+
+REPORTING_API_KEY=
+TELERIK_ENCRYPTION_KEY=
+SITECORE_GRAPHQL_ENABLED=false
+SITECORE_GRAPHQL_EXPOSEPLAYGROUND=false
+SITECORE_GRAPHQL_UPLOADMEDIAOPTIONS_ENCRYPTIONKEY=
+SITECORE_IDSECRET=
+SITECORE_ID_CERTIFICATE=
+SITECORE_ID_CERTIFICATE_PASSWORD=
+SITECORE_LICENSE=
\ No newline at end of file
diff --git a/sxc/10.3/xc1-cxa/cd/Dockerfile b/sxc/10.3/xc1-cxa/cd/Dockerfile
new file mode 100644
index 0000000..75a2d1f
--- /dev/null
+++ b/sxc/10.3/xc1-cxa/cd/Dockerfile
@@ -0,0 +1,23 @@
+# escape=`
+
+ARG BASE_IMAGE
+ARG SXA_RESOURCES_IMAGE
+ARG ASSETS_IMAGE
+
+FROM ${ASSETS_IMAGE} AS assets
+
+FROM ${SXA_RESOURCES_IMAGE} AS sxa_resources
+
+FROM ${BASE_IMAGE}
+
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+
+COPY --from=assets C:\module\cd\content\inetpub\wwwroot C:\inetpub\wwwroot
+COPY --from=assets C:\module\cd\content\xdts C:\xdts
+COPY --from=sxa_resources C:\module\cd\content C:\inetpub\wwwroot
+COPY --from=sxa_resources C:\module\tools C:\module\tools
+
+RUN c:\tools\nuget.exe install Microsoft.Web.Xdt -Version 3.0.0 -OutputDirectory C:\tools -ExcludeVersion; `
+ c:\tools\scripts\Invoke-XdtTransformations.ps1 -TargetPath c:\inetpub\wwwroot -XdtPath c:\xdts -XdtDllPath c:\tools\Microsoft.Web.Xdt\lib\netstandard2.0\Microsoft.Web.XmlTransform.dll;`
+ C:\module\tools\Initialize-Content.ps1 -TargetPath C:\inetpub\wwwroot; `
+ Remove-Item -Path C:\module -Recurse -Force;
\ No newline at end of file
diff --git a/sxc/10.3/xc1-cxa/cm/Dockerfile b/sxc/10.3/xc1-cxa/cm/Dockerfile
new file mode 100644
index 0000000..4b25e03
--- /dev/null
+++ b/sxc/10.3/xc1-cxa/cm/Dockerfile
@@ -0,0 +1,30 @@
+# escape=`
+
+ARG BASE_IMAGE
+ARG SPE_RESOURCES_IMAGE
+ARG SXA_RESOURCES_IMAGE
+ARG ASSETS_IMAGE
+
+FROM ${ASSETS_IMAGE} AS assets
+
+FROM ${SPE_RESOURCES_IMAGE} AS spe_resources
+
+FROM ${SXA_RESOURCES_IMAGE} AS sxa_resources
+
+FROM ${BASE_IMAGE} AS spe
+
+COPY --from=spe_resources C:\module\cm\content C:\inetpub\wwwroot
+
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+
+FROM spe AS sxa
+
+COPY --from=assets C:\module\cm\content\inetpub\wwwroot C:\inetpub\wwwroot
+COPY --from=assets C:\module\cm\content\xdts C:\xdts
+COPY --from=sxa_resources C:\module\cm\content C:\inetpub\wwwroot
+COPY --from=sxa_resources C:\module\tools C:\module\tools
+
+RUN c:\tools\nuget.exe install Microsoft.Web.Xdt -Version 3.0.0 -OutputDirectory C:\tools -ExcludeVersion; `
+ c:\tools\scripts\Invoke-XdtTransformations.ps1 -TargetPath c:\inetpub\wwwroot -XdtPath c:\xdts -XdtDllPath c:\tools\Microsoft.Web.Xdt\lib\netstandard2.0\Microsoft.Web.XmlTransform.dll;`
+ C:\module\tools\Initialize-Content.ps1 -TargetPath C:\inetpub\wwwroot; `
+ Remove-Item -Path C:\module -Recurse -Force;
\ No newline at end of file
diff --git a/sxc/10.3/xc1-cxa/device-detection-data/readme.md b/sxc/10.3/xc1-cxa/device-detection-data/readme.md
new file mode 100644
index 0000000..fe38d07
--- /dev/null
+++ b/sxc/10.3/xc1-cxa/device-detection-data/readme.md
@@ -0,0 +1 @@
+device detection database will be mounted here
\ No newline at end of file
diff --git a/sxc/10.3/xc1-cxa/docker-compose.build.yml b/sxc/10.3/xc1-cxa/docker-compose.build.yml
new file mode 100644
index 0000000..c498b97
--- /dev/null
+++ b/sxc/10.3/xc1-cxa/docker-compose.build.yml
@@ -0,0 +1,47 @@
+services:
+ mssql-init:
+ image: sitecore-xc1-mssql-init
+ build:
+ isolation: ${ISOLATION}
+ context: ./mssql/init
+ args:
+ BASE_IMAGE: xc1-mssql-init:latest
+ SPE_RESOURCES_IMAGE: ${MODULES_SITECORE_DOCKER_REGISTRY}sitecore-spe-assets:${SPE_SITECORE_TAG}
+ ASSETS_IMAGE: ${XC_SITECORE_DOCKER_REGISTRY}sitecore-xc1-storefront-assets:${XC_PACKAGES_TAG}
+ solr-init:
+ image: sitecore-xc1-solr-init
+ build:
+ isolation: ${ISOLATION}
+ context: ./solr-init
+ args:
+ BASE_IMAGE: xc1-solr-init:latest
+ SXA_RESOURCES_IMAGE: ${MODULES_SITECORE_DOCKER_REGISTRY}sitecore-sxa-xp1-assets:${SXA_SITECORE_TAG}
+ ASSETS_IMAGE: ${XC_SITECORE_DOCKER_REGISTRY}sitecore-xc1-storefront-assets:${XC_PACKAGES_TAG}
+ solr-init-searchstax:
+ image: sitecore-xc1-solr-init-searchstax
+ build:
+ isolation: ${ISOLATION}
+ context: ./solr-init
+ args:
+ BASE_IMAGE: xc1-solr-init-searchstax:latest
+ SXA_RESOURCES_IMAGE: ${MODULES_SITECORE_DOCKER_REGISTRY}sitecore-sxa-xp1-assets:${SXA_SITECORE_TAG}
+ ASSETS_IMAGE: ${XC_SITECORE_DOCKER_REGISTRY}sitecore-xc1-storefront-assets:${XC_PACKAGES_TAG}
+ cd:
+ image: sitecore-xc1-cd
+ build:
+ isolation: ${ISOLATION}
+ context: ./cd
+ args:
+ BASE_IMAGE: xc1-cd:latest
+ SXA_RESOURCES_IMAGE: ${MODULES_SITECORE_DOCKER_REGISTRY}sitecore-sxa-xp1-assets:${SXA_SITECORE_TAG}
+ ASSETS_IMAGE: ${XC_SITECORE_DOCKER_REGISTRY}sitecore-xc1-storefront-assets:${XC_PACKAGES_TAG}
+ cm:
+ image: sitecore-xc1-cm
+ build:
+ isolation: ${ISOLATION}
+ context: ./cm
+ args:
+ BASE_IMAGE: xc1-cm:latest
+ SPE_RESOURCES_IMAGE: ${MODULES_SITECORE_DOCKER_REGISTRY}sitecore-spe-assets:${SPE_SITECORE_TAG}
+ SXA_RESOURCES_IMAGE: ${MODULES_SITECORE_DOCKER_REGISTRY}sitecore-sxa-xp1-assets:${SXA_SITECORE_TAG}
+ ASSETS_IMAGE: ${XC_SITECORE_DOCKER_REGISTRY}sitecore-xc1-storefront-assets:${XC_PACKAGES_TAG}
\ No newline at end of file
diff --git a/sxc/10.3/xc1-cxa/docker-compose.yml b/sxc/10.3/xc1-cxa/docker-compose.yml
new file mode 100644
index 0000000..bf7acf5
--- /dev/null
+++ b/sxc/10.3/xc1-cxa/docker-compose.yml
@@ -0,0 +1,705 @@
+services:
+ traefik:
+ isolation: ${TRAEFIK_ISOLATION}
+ image: ${TRAEFIK_IMAGE}
+ command:
+ - "--api.insecure=true"
+ - "--providers.docker.endpoint=npipe:////./pipe/docker_engine"
+ - "--providers.docker.exposedByDefault=false"
+ - "--providers.file.directory=C:/etc/traefik/config/dynamic"
+ - "--entryPoints.websecure.address=:443"
+ - "--entryPoints.websecure.forwardedHeaders.insecure"
+ ports:
+ - "443:443"
+ - "8079:8080"
+ volumes:
+ - source: \\.\pipe\docker_engine
+ target: \\.\pipe\docker_engine
+ type: npipe
+ - ./traefik:C:/etc/traefik
+ restart: unless-stopped
+ depends_on:
+ cd:
+ condition: service_started
+ cm:
+ condition: service_started
+ id:
+ condition: service_started
+ bizfx:
+ condition: service_started
+ engine-authoring:
+ condition: service_started
+ engine-shops:
+ condition: service_started
+ engine-minions:
+ condition: service_started
+ redis:
+ isolation: ${ISOLATION}
+ image: ${XP_SITECORE_DOCKER_REGISTRY}redis:3.2.100-${EXTERNAL_IMAGE_TAG_SUFFIX}
+ restart: unless-stopped
+ mssql:
+ isolation: ${ISOLATION}
+ image: ${XP_SITECORE_DOCKER_REGISTRY}nonproduction/mssql-developer:2017-${EXTERNAL_IMAGE_TAG_SUFFIX}
+ restart: unless-stopped
+ environment:
+ SA_PASSWORD: ${SQL_SA_PASSWORD}
+ ACCEPT_EULA: "Y"
+ ports:
+ - "14330:1433"
+ volumes:
+ - type: bind
+ source: c:\containers\mssql-data
+ target: c:\data
+ mssql-init:
+ isolation: ${ISOLATION}
+ image: ${XC_NONPRODUCTION_SITECORE_DOCKER_REGISTRY}sitecore-xc1-mssql-init:${XC_PACKAGES_TAG}
+ restart: on-failure
+ environment:
+ SQL_SERVER: ${SQL_SERVER}
+ SQL_ADMIN_LOGIN: ${SQL_SA_LOGIN}
+ SQL_ADMIN_PASSWORD: ${SQL_SA_PASSWORD}
+ SQL_DATABASE_PREFIX: ${SQL_DATABASE_PREFIX}
+ SQL_CUSTOM_DATABASE_PREFIX_UPDATE_FROM: ${SQL_CUSTOM_DATABASE_PREFIX_UPDATE_FROM}
+ SA_PASSWORD: ${SQL_SA_PASSWORD}
+ SITECORE_ADMIN_PASSWORD: ${SITECORE_ADMIN_PASSWORD}
+ POST_DEPLOYMENT_WAIT_PERIOD: 300
+ XC_SHARED_DB: ${XC_SHARED_DB}
+ XC_SHARED_ARCHIVE_DB: ${XC_SHARED_ARCHIVE_DB}
+ healthcheck:
+ test: ["CMD", "powershell", "-command", "if ([System.Environment]::GetEnvironmentVariable('CommerceDatabasesDeploymentStatus', 'Machine') -eq 'Complete') { exit 0 } else { exit 1}"]
+ start_period: 900s
+ interval: 5s
+ depends_on:
+ mssql:
+ condition: service_healthy
+ solr:
+ isolation: ${ISOLATION}
+ image: ${XP_SITECORE_DOCKER_REGISTRY}nonproduction/solr:8.11.2-${EXTERNAL_IMAGE_TAG_SUFFIX}
+ ports:
+ - "8984:8983"
+ restart: unless-stopped
+ volumes:
+ - type: bind
+ source: c:\containers\solr-data
+ target: c:\data
+ environment:
+ SOLR_MODE: solrcloud
+ healthcheck:
+ test: ["CMD", "powershell", "-command", "try { $$statusCode = (iwr http://solr:8983/solr/admin/cores?action=STATUS -UseBasicParsing).StatusCode; if ($$statusCode -eq 200) { exit 0 } else { exit 1} } catch { exit 1 }"]
+ solr-init:
+ isolation: ${ISOLATION}
+ image: ${XC_NONPRODUCTION_SITECORE_DOCKER_REGISTRY}sitecore-xc1-solr-init:${XC_PACKAGES_TAG}
+ environment:
+ SITECORE_SOLR_CONNECTION_STRING: http://solr:8983/solr
+ SOLR_CORE_PREFIX_NAME: ${SOLR_CORE_PREFIX_NAME}
+ COMMERCE_SOLR_CONNECTION_STRING: http://solr:8983/solr
+ SOLR_COMMERCE_PREFIX_NAME: ${SOLR_COMMERCE_PREFIX_NAME}
+ depends_on:
+ solr:
+ condition: service_healthy
+ id:
+ isolation: ${ISOLATION}
+ image: ${XC_NONPRODUCTION_SITECORE_DOCKER_REGISTRY}sitecore-xc-id7:${XC_PACKAGES_TAG}
+ restart: unless-stopped
+ environment:
+ Sitecore_Sitecore__IdentityServer__SitecoreMemberShipOptions__ConnectionString: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Core;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_Sitecore__IdentityServer__AccountOptions__PasswordRecoveryUrl: https://${CM_HOST}/sitecore/login?rc=1
+ Sitecore_Sitecore__IdentityServer__Clients__PasswordClient__ClientSecrets__ClientSecret1: ${SITECORE_IDSECRET}
+ Sitecore_Sitecore__IdentityServer__Clients__DefaultClient__AllowedCorsOrigins__AllowedCorsOriginsGroup1: https://${CM_HOST}
+ Sitecore_Sitecore__IdentityServer__CertificateRawData: ${SITECORE_ID_CERTIFICATE}
+ Sitecore_Sitecore__IdentityServer__PublicOrigin: https://${ID_HOST}
+ Sitecore_Sitecore__IdentityServer__CertificateRawDataPassword: ${SITECORE_ID_CERTIFICATE_PASSWORD}
+ Sitecore_License: ${SITECORE_LICENSE}
+ Sitecore_Sitecore__IdentityServer__Clients__CommerceClient__AllowedCorsOrigins__AllowedCorsOriginsGroup1: https://${BIZFX_HOST}|https://${AUTHORING_HOST}
+ Sitecore_Sitecore__IdentityServer__Clients__CommerceEngineConnectClient__ClientId: ${XC_ENGINE_CONNECT_CLIENTID}
+ Sitecore_Sitecore__IdentityServer__Clients__CommerceEngineConnectClient__AllowedCorsOrigins__AllowedCorsOriginsGroup1: https://${CD_HOST}|https://${CM_HOST}
+ Sitecore_Sitecore__IdentityServer__Clients__CommerceEngineConnectClient__ClientSecrets__ClientSecret1: ${XC_IDENTITY_COMMERCEENGINECONNECTCLIENT_CLIENTSECRET1}
+ healthcheck:
+ test: ["CMD", "pwsh", "-command", "C:/Healthchecks/Healthcheck.ps1"]
+ timeout: 300s
+ depends_on:
+ mssql-init:
+ condition: service_healthy
+ labels:
+ - "traefik.enable=true"
+ - "traefik.http.routers.id-secure.entrypoints=websecure"
+ - "traefik.http.routers.id-secure.rule=Host(`${ID_HOST}`)"
+ - "traefik.http.routers.id-secure.tls=true"
+ cd:
+ isolation: ${ISOLATION}
+ image: ${XC_NONPRODUCTION_SITECORE_DOCKER_REGISTRY}sitecore-xc1-cd:${XC_PACKAGES_TAG}
+ depends_on:
+ mssql-init:
+ condition: service_healthy
+ redis:
+ condition: service_started
+ xdbcollection:
+ condition: service_started
+ xdbautomation:
+ condition: service_started
+ xdbautomationrpt:
+ condition: service_started
+ xdbrefdata:
+ condition: service_started
+ environment:
+ Sitecore_AppSettings_instanceNameMode:define: default
+ Sitecore_ConnectionStrings_Security: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Core;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Web: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Web;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Messaging: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Messaging;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_ExperienceForms: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.ExperienceForms;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Exm.Master: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Exm.master;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Solr.Search: http://solr:8983/solr;solrCloud=true
+ Sitecore_ConnectionStrings_XConnect.Collection: http://xdbcollection
+ Sitecore_ConnectionStrings_Xdb.MarketingAutomation.Operations.Client: http://xdbautomation
+ Sitecore_ConnectionStrings_Xdb.MarketingAutomation.Reporting.Client: http://xdbautomationrpt
+ Sitecore_ConnectionStrings_Xdb.ReferenceData.Client: http://xdbrefdata
+ Sitecore_ConnectionStrings_Redis.Sessions: redis:6379,ssl=False,abortConnect=False
+ Sitecore_License: ${SITECORE_LICENSE}
+ Sitecore_Analytics_Forwarded_Request_Http_Header: X-Forwarded-For
+ SOLR_CORE_PREFIX_NAME: ${SOLR_CORE_PREFIX_NAME}
+ MEDIA_REQUEST_PROTECTION_SHARED_SECRET: ${MEDIA_REQUEST_PROTECTION_SHARED_SECRET}
+ LOG_LEVEL_VALUE: ${LOG_LEVEL_VALUE}
+ Sitecore_Identity_Server_Authority: https://${ID_HOST}
+ Sitecore_Identity_Server_InternalAuthority: http://id
+ Sitecore_xc_Minions_Url: http://engine-minions:${XC_ENGINE_PORT}/commerceops/
+ Sitecore_xc_Ops_Url: http://engine-authoring:${XC_ENGINE_PORT}/commerceops/
+ Sitecore_xc_Shops_Url: http://engine-shops:${XC_ENGINE_PORT}/api/
+ Sitecore_xc_Client_Secret_Hash: ${XC_IDENTITY_COMMERCEENGINECONNECTCLIENT_CLIENTSECRET1}
+ Sitecore_xc_ConnectionStrings_Redis: redis:6379,defaultDatabase=1,allowAdmin=true,syncTimeout=3600000
+ healthcheck:
+ test: ["CMD", "powershell", "-command", "C:/Healthchecks/Healthcheck.ps1"]
+ timeout: 300s
+ labels:
+ - "traefik.enable=true"
+ - "traefik.http.middlewares.force-STS-Header.headers.forceSTSHeader=true"
+ - "traefik.http.middlewares.force-STS-Header.headers.stsSeconds=31536000"
+ - "traefik.http.routers.cd-secure.entrypoints=websecure"
+ - "traefik.http.routers.cd-secure.rule=Host(`${CD_HOST}`)"
+ - "traefik.http.routers.cd-secure.tls=true"
+ - "traefik.http.routers.cd-secure.middlewares=force-STS-Header"
+ volumes:
+ - C:\containers\cd\domains-shared:C:\inetpub\wwwroot\App_Config\Security-Shared:RW
+ - type: bind
+ source: .\device-detection-data
+ target: C:\inetpub\wwwroot\App_Data\DeviceDetection
+ cm:
+ isolation: ${ISOLATION}
+ image: ${XC_NONPRODUCTION_SITECORE_DOCKER_REGISTRY}sitecore-xc1-cm:${XC_PACKAGES_TAG}
+ depends_on:
+ id:
+ condition: service_started
+ cortexreporting:
+ condition: service_started
+ cortexprocessing:
+ condition: service_started
+ xdbcollection:
+ condition: service_started
+ xdbsearch:
+ condition: service_started
+ xdbautomation:
+ condition: service_started
+ xdbautomationrpt:
+ condition: service_started
+ xdbrefdata:
+ condition: service_started
+ environment:
+ Sitecore_AppSettings_instanceNameMode:define: default
+ Sitecore_ConnectionStrings_Core: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Core;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Security: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Core;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Master: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Master;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Web: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Web;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Reporting.ApiKey: ${REPORTING_API_KEY}
+ Sitecore_ConnectionStrings_Messaging: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Messaging;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Xdb.Referencedata: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Referencedata;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_ExperienceForms: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.ExperienceForms;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Exm.Master: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Exm.master;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Reporting: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Reporting;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Sitecore.Reporting.Client: http://cortexreporting
+ Sitecore_ConnectionStrings_Cortex.Processing.Engine: http://cortexprocessing
+ Sitecore_ConnectionStrings_Solr.Search: http://solr:8983/solr;solrCloud=true
+ Sitecore_ConnectionStrings_SitecoreIdentity.Secret: ${SITECORE_IDSECRET}
+ Sitecore_ConnectionStrings_XConnect.Collection: http://xdbcollection
+ Sitecore_ConnectionStrings_XConnect.Search: http://xdbsearch
+ Sitecore_ConnectionStrings_Xdb.MarketingAutomation.Operations.Client: http://xdbautomation
+ Sitecore_ConnectionStrings_Xdb.MarketingAutomation.Reporting.Client: http://xdbautomationrpt
+ Sitecore_ConnectionStrings_Xdb.ReferenceData.Client: http://xdbrefdata
+ Sitecore_Processing_Service_Url: http://prc
+ Sitecore_Processing_Service_Require_Https: 'false'
+ Sitecore_AppSettings_Telerik.AsyncUpload.ConfigurationEncryptionKey: ${TELERIK_ENCRYPTION_KEY}
+ Sitecore_AppSettings_Telerik.Upload.ConfigurationHashKey: ${TELERIK_ENCRYPTION_KEY}
+ Sitecore_AppSettings_Telerik.Web.UI.DialogParametersEncryptionKey: ${TELERIK_ENCRYPTION_KEY}
+ Sitecore_License: ${SITECORE_LICENSE}
+ Sitecore_GraphQL_Enabled: ${SITECORE_GRAPHQL_ENABLED}
+ Sitecore_GraphQL_ExposePlayground: ${SITECORE_GRAPHQL_EXPOSEPLAYGROUND}
+ Sitecore_GraphQL_UploadMediaOptions_EncryptionKey: ${SITECORE_GRAPHQL_UPLOADMEDIAOPTIONS_ENCRYPTIONKEY}
+ Sitecore_Identity_Server_Authority: https://${ID_HOST}
+ Sitecore_Identity_Server_InternalAuthority: http://id
+ Sitecore_Identity_Server_CallbackAuthority: https://${CM_HOST}
+ Sitecore_Identity_Server_Require_Https: "false"
+ SOLR_CORE_PREFIX_NAME: ${SOLR_CORE_PREFIX_NAME}
+ MEDIA_REQUEST_PROTECTION_SHARED_SECRET: ${MEDIA_REQUEST_PROTECTION_SHARED_SECRET}
+ LOG_LEVEL_VALUE: ${LOG_LEVEL_VALUE}
+ Sitecore_xc_Minions_Url: http://engine-minions:${XC_ENGINE_PORT}/commerceops/
+ Sitecore_xc_Ops_Url: http://engine-authoring:${XC_ENGINE_PORT}/commerceops/
+ Sitecore_xc_Shops_Url: http://engine-authoring:${XC_ENGINE_PORT}/api/
+ Sitecore_xc_Client_Secret_Hash: ${XC_IDENTITY_COMMERCEENGINECONNECTCLIENT_CLIENTSECRET1}
+ Sitecore_xc_ConnectionStrings_Redis: redis:6379,defaultDatabase=1,allowAdmin=true,syncTimeout=3600000
+ healthcheck:
+ test: ["CMD", "powershell", "-command", "C:/Healthchecks/Healthcheck.ps1"]
+ timeout: 300s
+ labels:
+ - "traefik.enable=true"
+ - "traefik.http.middlewares.force-STS-Header.headers.forceSTSHeader=true"
+ - "traefik.http.middlewares.force-STS-Header.headers.stsSeconds=31536000"
+ - "traefik.http.routers.cm-secure.entrypoints=websecure"
+ - "traefik.http.routers.cm-secure.rule=Host(`${CM_HOST}`)"
+ - "traefik.http.routers.cm-secure.tls=true"
+ - "traefik.http.routers.cm-secure.middlewares=force-STS-Header"
+ volumes:
+ - C:\containers\cm\domains-shared:C:\inetpub\wwwroot\App_Config\Security-Shared:RW
+ prc:
+ isolation: ${ISOLATION}
+ image: ${XC_NONPRODUCTION_SITECORE_DOCKER_REGISTRY}sitecore-xc1-prc:${XC_PACKAGES_TAG}
+ depends_on:
+ mssql-init:
+ condition: service_healthy
+ xdbcollection:
+ condition: service_started
+ environment:
+ Sitecore_AppSettings_instanceNameMode:define: default
+ Sitecore_ConnectionStrings_Core: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Core;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Security: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Core;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Master: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Master;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Reporting.ApiKey: ${REPORTING_API_KEY}
+ Sitecore_ConnectionStrings_Xdb.Processing.Pools: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Processing.pools;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Xdb.Referencedata: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Referencedata;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Xdb.Processing.Tasks: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Processing.tasks;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Reporting: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Reporting;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_XConnect.Collection: http://xdbcollection
+ Sitecore_License: ${SITECORE_LICENSE}
+ MEDIA_REQUEST_PROTECTION_SHARED_SECRET: ${MEDIA_REQUEST_PROTECTION_SHARED_SECRET}
+ LOG_LEVEL_VALUE: ${LOG_LEVEL_VALUE}
+ healthcheck:
+ test: ["CMD", "powershell", "-command", "C:/Healthchecks/Healthcheck.ps1"]
+ timeout: 300s
+ xdbcollection:
+ isolation: ${ISOLATION}
+ image: ${XC_NONPRODUCTION_SITECORE_DOCKER_REGISTRY}sitecore-xc1-xdbcollection:${XC_PACKAGES_TAG}
+ depends_on:
+ mssql-init:
+ condition: service_healthy
+ environment:
+ Sitecore_ConnectionStrings_Messaging: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Messaging;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Xdb.Marketingautomation: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Marketingautomation;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Xdb.Processing.Pools: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Processing.pools;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Collection: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Xdb.Collection.ShardMapManager;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Xdb.Referencedata: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Referencedata;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_License: ${SITECORE_LICENSE}
+ healthcheck:
+ test: ["CMD", "powershell", "-command", "C:/Healthchecks/Healthcheck.ps1"]
+ timeout: 300s
+ xdbsearch:
+ isolation: ${ISOLATION}
+ image: ${XC_NONPRODUCTION_SITECORE_DOCKER_REGISTRY}sitecore-xc1-xdbsearch:${XC_PACKAGES_TAG}
+ depends_on:
+ xdbcollection:
+ condition: service_started
+ solr:
+ condition: service_started
+ environment:
+ Sitecore_ConnectionStrings_Messaging: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Messaging;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Xdb.Marketingautomation: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Marketingautomation;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Xdb.Processing.Pools: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Processing.pools;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Collection: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Xdb.Collection.ShardMapManager;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Xdb.Referencedata: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Referencedata;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_SolrCore: http://solr:8983/solr/${SOLR_CORE_PREFIX_NAME}_xdb;solrCloud=true
+ Sitecore_License: ${SITECORE_LICENSE}
+ Sitecore_Sitecore:XConnect:CollectionSearch:Services:Solr.SolrReaderSettings:Options:RequireHttps: 'false'
+ Sitecore_Sitecore:XConnect:CollectionSearch:Services:XConnectSolrHealthCheckServicesConfiguration:Options:RequireHttps: 'false'
+ healthcheck:
+ test: ["CMD", "powershell", "-command", "C:/Healthchecks/Healthcheck.ps1"]
+ timeout: 300s
+ xdbautomation:
+ isolation: ${ISOLATION}
+ image: ${XC_NONPRODUCTION_SITECORE_DOCKER_REGISTRY}sitecore-xc1-xdbautomation:${XC_PACKAGES_TAG}
+ depends_on:
+ mssql-init:
+ condition: service_healthy
+ xdbcollection:
+ condition: service_started
+ xdbsearch:
+ condition: service_started
+ environment:
+ Sitecore_ConnectionStrings_Messaging: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Messaging;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Xdb.Marketingautomation: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Marketingautomation;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Xdb.Referencedata: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Referencedata;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_XConnect.Collection: http://xdbcollection
+ Sitecore_ConnectionStrings_XConnect.Search: http://xdbsearch
+ Sitecore_License: ${SITECORE_LICENSE}
+ healthcheck:
+ test: ["CMD", "powershell", "-command", "C:/Healthchecks/Healthcheck.ps1"]
+ timeout: 300s
+ xdbautomationrpt:
+ isolation: ${ISOLATION}
+ image: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-xp1-xdbautomationrpt:${XP_SITECORE_TAG}
+ depends_on:
+ mssql-init:
+ condition: service_healthy
+ environment:
+ Sitecore_ConnectionStrings_Xdb.Marketingautomation: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Marketingautomation;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Xdb.Referencedata: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Referencedata;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_License: ${SITECORE_LICENSE}
+ healthcheck:
+ test: ["CMD", "powershell", "-command", "C:/Healthchecks/Healthcheck.ps1"]
+ timeout: 300s
+ cortexprocessing:
+ isolation: ${ISOLATION}
+ image: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-xp1-cortexprocessing:${XP_SITECORE_TAG}
+ depends_on:
+ mssql-init:
+ condition: service_healthy
+ environment:
+ Sitecore_ConnectionStrings_Processing.Engine.Storage: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Processing.Engine.Storage;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Processing.Engine.Tasks: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Processing.Engine.Tasks;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_License: ${SITECORE_LICENSE}
+ healthcheck:
+ test: ["CMD", "powershell", "-command", "C:/Healthchecks/Healthcheck.ps1"]
+ timeout: 300s
+ cortexreporting:
+ isolation: ${ISOLATION}
+ image: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-xp1-cortexreporting:${XP_SITECORE_TAG}
+ depends_on:
+ mssql-init:
+ condition: service_healthy
+ environment:
+ Sitecore_ConnectionStrings_Reporting: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Reporting;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_License: ${SITECORE_LICENSE}
+ healthcheck:
+ test: ["CMD", "powershell", "-command", "C:/Healthchecks/Healthcheck.ps1"]
+ timeout: 300s
+ xdbrefdata:
+ isolation: ${ISOLATION}
+ image: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-xp1-xdbrefdata:${XP_SITECORE_TAG}
+ depends_on:
+ mssql-init:
+ condition: service_healthy
+ environment:
+ Sitecore_ConnectionStrings_Xdb.Referencedata: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Referencedata;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_License: ${SITECORE_LICENSE}
+ healthcheck:
+ test: ["CMD", "powershell", "-command", "C:/Healthchecks/Healthcheck.ps1"]
+ timeout: 300s
+ xdbsearchworker:
+ isolation: ${ISOLATION}
+ image: ${XC_NONPRODUCTION_SITECORE_DOCKER_REGISTRY}sitecore-xc1-xdbsearchworker:${XC_PACKAGES_TAG}
+ depends_on:
+ xdbsearch:
+ condition: service_healthy
+ restart: unless-stopped
+ environment:
+ Sitecore_ConnectionStrings_Collection: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Xdb.Collection.ShardMapManager;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_SolrCore: http://solr:8983/solr/${SOLR_CORE_PREFIX_NAME}_xdb;solrCloud=true
+ Sitecore_License: ${SITECORE_LICENSE}
+ Sitecore_Sitecore:XConnect:SearchIndexer:Services:Solr.SolrReaderSettings:Options:RequireHttps: 'false'
+ Sitecore_Sitecore:XConnect:SearchIndexer:Services:Solr.SolrWriterSettings:Options:RequireHttps: 'false'
+ Sitecore_Sitecore:XConnect:CollectionSearch:Services:XConnectSolrHealthCheckServicesConfiguration:Options:RequireHttps: 'false'
+ healthcheck:
+ test: ["CMD", "powershell", "-command", "C:/Healthchecks/Healthcheck.ps1 -Port 8080"]
+ timeout: 300s
+ xdbautomationworker:
+ isolation: ${ISOLATION}
+ image: ${XC_NONPRODUCTION_SITECORE_DOCKER_REGISTRY}sitecore-xc1-xdbautomationworker:${XC_PACKAGES_TAG}
+ depends_on:
+ xdbcollection:
+ condition: service_healthy
+ xdbsearch:
+ condition: service_healthy
+ restart: unless-stopped
+ environment:
+ Sitecore_ConnectionStrings_XConnect.Collection: http://xdbcollection
+ Sitecore_ConnectionStrings_XConnect.Search: http://xdbsearch
+ Sitecore_ConnectionStrings_Xdb.Marketingautomation: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Marketingautomation;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Xdb.Referencedata: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Referencedata;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Messaging: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Messaging;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_License: ${SITECORE_LICENSE}
+ healthcheck:
+ test: ["CMD", "powershell", "-command", "C:/Healthchecks/Healthcheck.ps1 -Port 8080"]
+ timeout: 300s
+ cortexprocessingworker:
+ isolation: ${ISOLATION}
+ image: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-xp1-cortexprocessingworker:${XP_SITECORE_TAG}
+ depends_on:
+ xdbcollection:
+ condition: service_healthy
+ xdbsearch:
+ condition: service_healthy
+ restart: unless-stopped
+ environment:
+ Sitecore_ConnectionStrings_Processing.Engine.Storage: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Processing.Engine.Storage;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Processing.Engine.Tasks: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Processing.Engine.Tasks;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_XConnect.Collection: http://xdbcollection
+ Sitecore_ConnectionStrings_XConnect.Configuration: http://xdbcollection
+ Sitecore_ConnectionStrings_XConnect.Search: http://xdbsearch
+ Sitecore_ConnectionStrings_Reporting: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Reporting;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
+ Sitecore_License: ${SITECORE_LICENSE}
+ healthcheck:
+ test: ["CMD", "powershell", "-command", "C:/Healthchecks/Healthcheck.ps1 -Port 8080"]
+ timeout: 300s
+ bizfx:
+ isolation: ${ISOLATION}
+ image: ${XC_NONPRODUCTION_SITECORE_DOCKER_REGISTRY}sitecore-xc-bizfx:${XC_PACKAGES_TAG}
+ depends_on:
+ engine-authoring:
+ condition: service_started
+ engine-minions:
+ condition: service_started
+ id:
+ condition: service_started
+ environment:
+ sitecore_xc_bizfx_bizfx_url: https://${BIZFX_HOST}
+ sitecore_xc_bizfx_authoring_url: https://${AUTHORING_HOST}
+ sitecore_xc_bizfx_identity_server_url: https://${ID_HOST}
+ sitecore_xc_bizfx_default_language: ${XC_BIZFX_DEFAULT_LANGUAGE}
+ sitecore_xc_bizfx_default_currency: ${XC_BIZFX_DEFAULT_CURRENCY}
+ sitecore_xc_bizfx_default_shopname: ${XC_BIZFX_DEFAULT_SHOPNAME}
+ labels:
+ - "traefik.enable=true"
+ - "traefik.http.middlewares.force-STS-Header.headers.forceSTSHeader=true"
+ - "traefik.http.middlewares.force-STS-Header.headers.stsSeconds=31536000"
+ - "traefik.http.routers.bizfx-secure.entrypoints=websecure"
+ - "traefik.http.routers.bizfx-secure.rule=Host(`${BIZFX_HOST}`)"
+ - "traefik.http.routers.bizfx-secure.tls=true"
+ - "traefik.http.routers.bizfx-secure.middlewares=force-STS-Header"
+ engine-authoring:
+ isolation: ${ISOLATION}
+ image: ${XC_NONPRODUCTION_SITECORE_DOCKER_REGISTRY}sitecore-xc-engine:${XC_PACKAGES_TAG}
+ depends_on:
+ mssql-init:
+ condition: service_healthy
+ solr:
+ condition: service_started
+ id:
+ condition: service_started
+ redis:
+ condition: service_started
+ cm:
+ condition: service_started
+ environment:
+ COMMERCEENGINE_AppSettings__DeploymentId: HabitatAuthoring01
+ COMMERCEENGINE_AppSettings__EnvironmentName: HabitatAuthoring
+ COMMERCEENGINE_AppSettings__SitecoreIdentityServerUrl: "https://${ID_HOST}"
+ COMMERCEENGINE_AppSettings__InternalSitecoreIdentityServerUrl: "http://id"
+ COMMERCEENGINE_AppSettings__AllowedOrigins: "https://${BIZFX_HOST}|https://${CD_HOST}|https://{CM_HOST}"
+ COMMERCEENGINE_AppSettings__AntiForgeryEnabled: "false"
+ COMMERCEENGINE_AppSettings__UseHttpsInKestrel: "false"
+ COMMERCEENGINE_Caching__Redis__Options__Configuration: redis:6379,ssl=False,abortConnect=False
+ COMMERCEENGINE_Caching__Redis__Options__InstanceName: Redis
+ COMMERCEENGINE_CommerceConnector__ClientId: ${XC_ENGINE_CONNECT_CLIENTID}
+ COMMERCEENGINE_GlobalDatabaseName: ${XC_GLOBAL_DB}
+ COMMERCEENGINE_GlobalDatabaseServer: ${SQL_SERVER}
+ COMMERCEENGINE_GlobalDatabaseUserName: ${SQL_SA_LOGIN}
+ COMMERCEENGINE_GlobalDatabasePassword: ${SQL_SA_PASSWORD}
+ COMMERCEENGINE_GlobalTrustedConnection: "${XC_GLOBAL_DB_TRUSTED_CONNECTION}"
+ COMMERCEENGINE_SharedDatabaseName: ${XC_SHARED_DB}
+ COMMERCEENGINE_SharedArchiveDatabaseName: ${XC_SHARED_ARCHIVE_DB}
+ COMMERCEENGINE_SharedDatabaseServer: ${SQL_SERVER}
+ COMMERCEENGINE_SharedDatabaseUserName: ${SQL_SA_LOGIN}
+ COMMERCEENGINE_SharedDatabasePassword: ${SQL_SA_PASSWORD}
+ COMMERCEENGINE_SharedTrustedConnection: "${XC_SHARED_DB_TRUSTED_CONNECTION}"
+ COMMERCEENGINE_SitecoreHost: cm
+ COMMERCEENGINE_SitecoreDatabase: master
+ COMMERCEENGINE_SitecoreUsername: admin
+ COMMERCEENGINE_SitecoreDomain: sitecore
+ COMMERCEENGINE_SitecorePassword: ${SITECORE_ADMIN_PASSWORD}
+ COMMERCEENGINE_SitecoreProtocol: http
+ COMMERCEENGINE_SitecoreAllowAnonymousUser: "true"
+ COMMERCEENGINE_SitecoreExternalProtocol: https
+ COMMERCEENGINE_SitecoreExternalHost: ${CM_HOST}
+ COMMERCEENGINE_SolrUrl: http://solr:8983/solr
+ COMMERCEENGINE_IsSolrCloud: "true"
+ COMMERCEENGINE_StorefrontIndexPrefix_web_index: ${SOLR_CORE_PREFIX_NAME}_web_index
+ COMMERCEENGINE_StorefrontIndexPrefix_master_index: ${SOLR_CORE_PREFIX_NAME}_master_index
+ COMMERCEENGINE_SearchIndexPrefixOrdersScope: ${SOLR_COMMERCE_PREFIX_NAME}_OrdersScope
+ COMMERCEENGINE_SearchIndexPrefixOrdersScope-Rebuild: ${SOLR_COMMERCE_PREFIX_NAME}_OrdersScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixCustomersScope: ${SOLR_COMMERCE_PREFIX_NAME}_CustomersScope
+ COMMERCEENGINE_SearchIndexPrefixCustomersScope-Rebuild: ${SOLR_COMMERCE_PREFIX_NAME}_CustomersScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixCatalogItemsScope: ${SOLR_COMMERCE_PREFIX_NAME}_CatalogItemsScope
+ COMMERCEENGINE_SearchIndexPrefixCatalogItemsScope-Rebuild: ${SOLR_COMMERCE_PREFIX_NAME}_CatalogItemsScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixPromotionsScope: ${SOLR_COMMERCE_PREFIX_NAME}_PromotionsScope
+ COMMERCEENGINE_SearchIndexPrefixPromotionsScope-Rebuild: ${SOLR_COMMERCE_PREFIX_NAME}_PromotionsScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixPriceCardsScope: ${SOLR_COMMERCE_PREFIX_NAME}_PriceCardsScope
+ COMMERCEENGINE_SearchIndexPrefixPriceCardsScope-Rebuild: ${SOLR_COMMERCE_PREFIX_NAME}_PriceCardsScope-Rebuild
+ COMMERCEENGINE_EngineAuthoringUrl: https://${AUTHORING_HOST}
+ COMMERCEENGINE_EngineShopsUrl: https://${SHOPS_HOST}
+ COMMERCEENGINE_EngineMinionsUrl: https://${MINIONS_HOST}
+ COMMERCEENGINE_BraintreeEnvironment: ${XC_ENGINE_BRAINTREEENVIRONMENT}
+ COMMERCEENGINE_BraintreeMerchantId: ${XC_ENGINE_BRAINTREEMERCHANTID}
+ COMMERCEENGINE_BraintreePublicKey: ${XC_ENGINE_BRAINTREEPUBLICKEY}
+ COMMERCEENGINE_BraintreePrivateKey: ${XC_ENGINE_BRAINTREEPRIVATEKEY}
+ volumes:
+ - C:\containers\engine\catalogs:C:\engine\catalogs:RO
+ labels:
+ - "traefik.enable=true"
+ - "traefik.http.middlewares.force-STS-Header.headers.forceSTSHeader=true"
+ - "traefik.http.middlewares.force-STS-Header.headers.stsSeconds=31536000"
+ - "traefik.http.routers.authoring-secure.entrypoints=websecure"
+ - "traefik.http.routers.authoring-secure.rule=Host(`${AUTHORING_HOST}`)"
+ - "traefik.http.routers.authoring-secure.tls=true"
+ - "traefik.http.routers.authoring-secure.middlewares=force-STS-Header"
+ healthcheck:
+ test: ["CMD", "powershell", "-command", "C:/Healthchecks/Healthcheck.ps1 -Port ${XC_ENGINE_PORT}"]
+ timeout: 300s
+ engine-shops:
+ isolation: ${ISOLATION}
+ image: ${XC_NONPRODUCTION_SITECORE_DOCKER_REGISTRY}sitecore-xc-engine:${XC_PACKAGES_TAG}
+ depends_on:
+ mssql-init:
+ condition: service_healthy
+ solr:
+ condition: service_started
+ id:
+ condition: service_started
+ redis:
+ condition: service_started
+ cm:
+ condition: service_started
+ environment:
+ COMMERCEENGINE_AppSettings__DeploymentId: HabitatShops01
+ COMMERCEENGINE_AppSettings__EnvironmentName: HabitatShops
+ COMMERCEENGINE_AppSettings__SitecoreIdentityServerUrl: "https://${ID_HOST}"
+ COMMERCEENGINE_AppSettings__InternalSitecoreIdentityServerUrl: "http://id"
+ COMMERCEENGINE_AppSettings__AllowedOrigins: "https://${BIZFX_HOST}|https://${CD_HOST}|https://{CM_HOST}"
+ COMMERCEENGINE_AppSettings__AntiForgeryEnabled: "false"
+ COMMERCEENGINE_AppSettings__UseHttpsInKestrel: "false"
+ COMMERCEENGINE_Caching__Redis__Options__Configuration: redis:6379,ssl=False,abortConnect=False
+ COMMERCEENGINE_Caching__Redis__Options__InstanceName: Redis
+ COMMERCEENGINE_CommerceConnector__ClientId: ${XC_ENGINE_CONNECT_CLIENTID}
+ COMMERCEENGINE_GlobalDatabaseName: ${XC_GLOBAL_DB}
+ COMMERCEENGINE_GlobalDatabaseServer: ${SQL_SERVER}
+ COMMERCEENGINE_GlobalDatabaseUserName: ${SQL_SA_LOGIN}
+ COMMERCEENGINE_GlobalDatabasePassword: ${SQL_SA_PASSWORD}
+ COMMERCEENGINE_GlobalTrustedConnection: "${XC_GLOBAL_DB_TRUSTED_CONNECTION}"
+ COMMERCEENGINE_SharedDatabaseName: ${XC_SHARED_DB}
+ COMMERCEENGINE_SharedArchiveDatabaseName: ${XC_SHARED_ARCHIVE_DB}
+ COMMERCEENGINE_SharedDatabaseServer: ${SQL_SERVER}
+ COMMERCEENGINE_SharedDatabaseUserName: ${SQL_SA_LOGIN}
+ COMMERCEENGINE_SharedDatabasePassword: ${SQL_SA_PASSWORD}
+ COMMERCEENGINE_SharedTrustedConnection: "${XC_SHARED_DB_TRUSTED_CONNECTION}"
+ COMMERCEENGINE_SitecoreHost: cm
+ COMMERCEENGINE_SitecoreDatabase: master
+ COMMERCEENGINE_SitecoreUsername: admin
+ COMMERCEENGINE_SitecoreDomain: sitecore
+ COMMERCEENGINE_SitecorePassword: ${SITECORE_ADMIN_PASSWORD}
+ COMMERCEENGINE_SitecoreProtocol: http
+ COMMERCEENGINE_SitecoreAllowAnonymousUser: "true"
+ COMMERCEENGINE_SitecoreExternalProtocol: https
+ COMMERCEENGINE_SitecoreExternalHost: ${CM_HOST}
+ COMMERCEENGINE_SolrUrl: http://solr:8983/solr
+ COMMERCEENGINE_IsSolrCloud: "true"
+ COMMERCEENGINE_StorefrontIndexPrefix_web_index: ${SOLR_CORE_PREFIX_NAME}_web_index
+ COMMERCEENGINE_StorefrontIndexPrefix_master_index: ${SOLR_CORE_PREFIX_NAME}_master_index
+ COMMERCEENGINE_SearchIndexPrefixOrdersScope: ${SOLR_COMMERCE_PREFIX_NAME}_OrdersScope
+ COMMERCEENGINE_SearchIndexPrefixOrdersScope-Rebuild: ${SOLR_COMMERCE_PREFIX_NAME}_OrdersScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixCustomersScope: ${SOLR_COMMERCE_PREFIX_NAME}_CustomersScope
+ COMMERCEENGINE_SearchIndexPrefixCustomersScope-Rebuild: ${SOLR_COMMERCE_PREFIX_NAME}_CustomersScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixCatalogItemsScope: ${SOLR_COMMERCE_PREFIX_NAME}_CatalogItemsScope
+ COMMERCEENGINE_SearchIndexPrefixCatalogItemsScope-Rebuild: ${SOLR_COMMERCE_PREFIX_NAME}_CatalogItemsScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixPromotionsScope: ${SOLR_COMMERCE_PREFIX_NAME}_PromotionsScope
+ COMMERCEENGINE_SearchIndexPrefixPromotionsScope-Rebuild: ${SOLR_COMMERCE_PREFIX_NAME}_PromotionsScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixPriceCardsScope: ${SOLR_COMMERCE_PREFIX_NAME}_PriceCardsScope
+ COMMERCEENGINE_SearchIndexPrefixPriceCardsScope-Rebuild: ${SOLR_COMMERCE_PREFIX_NAME}_PriceCardsScope-Rebuild
+ COMMERCEENGINE_EngineAuthoringUrl: https://${AUTHORING_HOST}
+ COMMERCEENGINE_EngineShopsUrl: https://${SHOPS_HOST}
+ COMMERCEENGINE_EngineMinionsUrl: https://${MINIONS_HOST}
+ COMMERCEENGINE_BraintreeEnvironment: ${XC_ENGINE_BRAINTREEENVIRONMENT}
+ COMMERCEENGINE_BraintreeMerchantId: ${XC_ENGINE_BRAINTREEMERCHANTID}
+ COMMERCEENGINE_BraintreePublicKey: ${XC_ENGINE_BRAINTREEPUBLICKEY}
+ COMMERCEENGINE_BraintreePrivateKey: ${XC_ENGINE_BRAINTREEPRIVATEKEY}
+ labels:
+ - "traefik.enable=true"
+ - "traefik.http.middlewares.force-STS-Header.headers.forceSTSHeader=true"
+ - "traefik.http.middlewares.force-STS-Header.headers.stsSeconds=31536000"
+ - "traefik.http.routers.shops-secure.entrypoints=websecure"
+ - "traefik.http.routers.shops-secure.rule=Host(`${SHOPS_HOST}`)"
+ - "traefik.http.routers.shops-secure.tls=true"
+ - "traefik.http.routers.shops-secure.middlewares=force-STS-Header"
+ healthcheck:
+ test: ["CMD", "powershell", "-command", "C:/Healthchecks/Healthcheck.ps1 -Port ${XC_ENGINE_PORT}"]
+ timeout: 300s
+ engine-minions:
+ isolation: ${ISOLATION}
+ image: ${XC_NONPRODUCTION_SITECORE_DOCKER_REGISTRY}sitecore-xc-engine:${XC_PACKAGES_TAG}
+ depends_on:
+ mssql-init:
+ condition: service_healthy
+ solr:
+ condition: service_started
+ id:
+ condition: service_started
+ redis:
+ condition: service_started
+ cm:
+ condition: service_started
+ environment:
+ COMMERCEENGINE_AppSettings__DeploymentId: HabitatMinions01
+ COMMERCEENGINE_AppSettings__EnvironmentName: HabitatMinions
+ COMMERCEENGINE_AppSettings__SitecoreIdentityServerUrl: "https://${ID_HOST}"
+ COMMERCEENGINE_AppSettings__InternalSitecoreIdentityServerUrl: "http://id"
+ COMMERCEENGINE_AppSettings__AllowedOrigins: "https://${BIZFX_HOST}|https://${CD_HOST}|https://{CM_HOST}"
+ COMMERCEENGINE_AppSettings__AntiForgeryEnabled: "false"
+ COMMERCEENGINE_AppSettings__UseHttpsInKestrel: "false"
+ COMMERCEENGINE_Caching__Redis__Options__Configuration: redis:6379,ssl=False,abortConnect=False
+ COMMERCEENGINE_Caching__Redis__Options__InstanceName: Redis
+ COMMERCEENGINE_CommerceConnector__ClientId: ${XC_ENGINE_CONNECT_CLIENTID}
+ COMMERCEENGINE_GlobalDatabaseName: ${XC_GLOBAL_DB}
+ COMMERCEENGINE_GlobalDatabaseServer: ${SQL_SERVER}
+ COMMERCEENGINE_GlobalDatabaseUserName: ${SQL_SA_LOGIN}
+ COMMERCEENGINE_GlobalDatabasePassword: ${SQL_SA_PASSWORD}
+ COMMERCEENGINE_GlobalTrustedConnection: "${XC_GLOBAL_DB_TRUSTED_CONNECTION}"
+ COMMERCEENGINE_SharedDatabaseName: ${XC_SHARED_DB}
+ COMMERCEENGINE_SharedArchiveDatabaseName: ${XC_SHARED_ARCHIVE_DB}
+ COMMERCEENGINE_SharedDatabaseServer: ${SQL_SERVER}
+ COMMERCEENGINE_SharedDatabaseUserName: ${SQL_SA_LOGIN}
+ COMMERCEENGINE_SharedDatabasePassword: ${SQL_SA_PASSWORD}
+ COMMERCEENGINE_SharedTrustedConnection: "${XC_SHARED_DB_TRUSTED_CONNECTION}"
+ COMMERCEENGINE_SitecoreHost: cm
+ COMMERCEENGINE_SitecoreDatabase: master
+ COMMERCEENGINE_SitecoreUsername: admin
+ COMMERCEENGINE_SitecoreDomain: sitecore
+ COMMERCEENGINE_SitecorePassword: ${SITECORE_ADMIN_PASSWORD}
+ COMMERCEENGINE_SitecoreProtocol: http
+ COMMERCEENGINE_SitecoreAllowAnonymousUser: "true"
+ COMMERCEENGINE_SitecoreExternalProtocol: https
+ COMMERCEENGINE_SitecoreExternalHost: ${CM_HOST}
+ COMMERCEENGINE_SolrUrl: http://solr:8983/solr
+ COMMERCEENGINE_IsSolrCloud: "true"
+ COMMERCEENGINE_StorefrontIndexPrefix_web_index: ${SOLR_CORE_PREFIX_NAME}_web_index
+ COMMERCEENGINE_StorefrontIndexPrefix_master_index: ${SOLR_CORE_PREFIX_NAME}_master_index
+ COMMERCEENGINE_SearchIndexPrefixOrdersScope: ${SOLR_COMMERCE_PREFIX_NAME}_OrdersScope
+ COMMERCEENGINE_SearchIndexPrefixOrdersScope-Rebuild: ${SOLR_COMMERCE_PREFIX_NAME}_OrdersScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixCustomersScope: ${SOLR_COMMERCE_PREFIX_NAME}_CustomersScope
+ COMMERCEENGINE_SearchIndexPrefixCustomersScope-Rebuild: ${SOLR_COMMERCE_PREFIX_NAME}_CustomersScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixCatalogItemsScope: ${SOLR_COMMERCE_PREFIX_NAME}_CatalogItemsScope
+ COMMERCEENGINE_SearchIndexPrefixCatalogItemsScope-Rebuild: ${SOLR_COMMERCE_PREFIX_NAME}_CatalogItemsScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixPromotionsScope: ${SOLR_COMMERCE_PREFIX_NAME}_PromotionsScope
+ COMMERCEENGINE_SearchIndexPrefixPromotionsScope-Rebuild: ${SOLR_COMMERCE_PREFIX_NAME}_PromotionsScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixPriceCardsScope: ${SOLR_COMMERCE_PREFIX_NAME}_PriceCardsScope
+ COMMERCEENGINE_SearchIndexPrefixPriceCardsScope-Rebuild: ${SOLR_COMMERCE_PREFIX_NAME}_PriceCardsScope-Rebuild
+ COMMERCEENGINE_EngineAuthoringUrl: https://${AUTHORING_HOST}
+ COMMERCEENGINE_EngineShopsUrl: https://${SHOPS_HOST}
+ COMMERCEENGINE_EngineMinionsUrl: https://${MINIONS_HOST}
+ COMMERCEENGINE_BraintreeEnvironment: ${XC_ENGINE_BRAINTREEENVIRONMENT}
+ COMMERCEENGINE_BraintreeMerchantId: ${XC_ENGINE_BRAINTREEMERCHANTID}
+ COMMERCEENGINE_BraintreePublicKey: ${XC_ENGINE_BRAINTREEPUBLICKEY}
+ COMMERCEENGINE_BraintreePrivateKey: ${XC_ENGINE_BRAINTREEPRIVATEKEY}
+ labels:
+ - "traefik.enable=true"
+ - "traefik.http.middlewares.force-STS-Header.headers.forceSTSHeader=true"
+ - "traefik.http.middlewares.force-STS-Header.headers.stsSeconds=31536000"
+ - "traefik.http.routers.minions-secure.entrypoints=websecure"
+ - "traefik.http.routers.minions-secure.rule=Host(`${MINIONS_HOST}`)"
+ - "traefik.http.routers.minions-secure.tls=true"
+ - "traefik.http.routers.minions-secure.middlewares=force-STS-Header"
+ healthcheck:
+ test: ["CMD", "powershell", "-command", "C:/Healthchecks/Healthcheck.ps1 -Port ${XC_ENGINE_PORT}"]
+ timeout: 300s
\ No newline at end of file
diff --git a/sxc/10.3/xc1-cxa/mssql/init/Dockerfile b/sxc/10.3/xc1-cxa/mssql/init/Dockerfile
new file mode 100644
index 0000000..951976f
--- /dev/null
+++ b/sxc/10.3/xc1-cxa/mssql/init/Dockerfile
@@ -0,0 +1,19 @@
+# escape=`
+
+ARG BASE_IMAGE
+ARG SPE_RESOURCES_IMAGE
+ARG ASSETS_IMAGE
+
+FROM ${ASSETS_IMAGE} AS assets
+
+FROM ${SPE_RESOURCES_IMAGE} AS spe_resources
+
+FROM ${BASE_IMAGE} AS spe
+
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+
+COPY --from=assets C:\module\db C:\resources
+
+COPY --from=spe_resources C:\module\db C:\resources\spe
+
+FROM spe AS cxa
\ No newline at end of file
diff --git a/sxc/10.3/xc1-cxa/solr-init/Dockerfile b/sxc/10.3/xc1-cxa/solr-init/Dockerfile
new file mode 100644
index 0000000..d0f46ee
--- /dev/null
+++ b/sxc/10.3/xc1-cxa/solr-init/Dockerfile
@@ -0,0 +1,16 @@
+# escape=`
+
+ARG BASE_IMAGE
+ARG SXA_RESOURCES_IMAGE
+ARG ASSETS_IMAGE
+
+FROM ${ASSETS_IMAGE} AS assets
+
+FROM ${SXA_RESOURCES_IMAGE} AS sxa_resources
+
+FROM ${BASE_IMAGE} AS sxa
+
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+
+COPY --from=assets C:\module\solr C:\data
+COPY --from=sxa_resources C:\module\solr\cores-sxa.json C:\data\cores-sxa.json
\ No newline at end of file
diff --git a/sxc/10.3/xc1-cxa/traefik/certs/readme b/sxc/10.3/xc1-cxa/traefik/certs/readme
new file mode 100644
index 0000000..688319a
--- /dev/null
+++ b/sxc/10.3/xc1-cxa/traefik/certs/readme
@@ -0,0 +1,15 @@
+Add TLS certificates for xc1-cxacd.localhost, xc1-cxacm.localhost, xc1-cxaid.localhost, bizfx.localhost, authoring.localhos, shops.localhost, and minions.localhost hosts to this folder:
+ xc1-cxacd.localhost.crt
+ xc1-cxacd.localhost.key
+ xc1-cxacm.localhost.crt
+ xc1-cxacm.localhost.key
+ xc1-cxaid.localhost.crt
+ xc1-cxaid.localhost.key
+ bizfx.localhost.crt
+ bizfx.localhost.key
+ authoring.localhost.crt
+ authoring.localhost.key
+ shops.localhost.crt
+ shops.localhost.key
+ minions.localhost.crt
+ minions.localhost.key
\ No newline at end of file
diff --git a/sxc/10.3/xc1-cxa/traefik/config/dynamic/certs_config.yaml b/sxc/10.3/xc1-cxa/traefik/config/dynamic/certs_config.yaml
new file mode 100644
index 0000000..95a3abf
--- /dev/null
+++ b/sxc/10.3/xc1-cxa/traefik/config/dynamic/certs_config.yaml
@@ -0,0 +1,16 @@
+tls:
+ certificates:
+ - certFile: C:\etc\traefik\certs\xc1-cxacd.localhost.crt
+ keyFile: C:\etc\traefik\certs\xc1-cxacd.localhost.key
+ - certFile: C:\etc\traefik\certs\xc1-cxacm.localhost.crt
+ keyFile: C:\etc\traefik\certs\xc1-cxacm.localhost.key
+ - certFile: C:\etc\traefik\certs\xc1-cxaid.localhost.crt
+ keyFile: C:\etc\traefik\certs\xc1-cxaid.localhost.key
+ - certFile: C:\etc\traefik\certs\bizfx.localhost.crt
+ keyFile: C:\etc\traefik\certs\bizfx.localhost.key
+ - certFile: C:\etc\traefik\certs\authoring.localhost.crt
+ keyFile: C:\etc\traefik\certs\authoring.localhost.key
+ - certFile: C:\etc\traefik\certs\shops.localhost.crt
+ keyFile: C:\etc\traefik\certs\shops.localhost.key
+ - certFile: C:\etc\traefik\certs\minions.localhost.crt
+ keyFile: C:\etc\traefik\certs\minions.localhost.key
diff --git a/sxc/10.3/xc1/.env b/sxc/10.3/xc1/.env
new file mode 100644
index 0000000..722e294
--- /dev/null
+++ b/sxc/10.3/xc1/.env
@@ -0,0 +1,14 @@
+BASE_SITECORE_DOCKER_REGISTRY=scr.sitecore.com/base/
+
+XP_SITECORE_DOCKER_REGISTRY=scr.sitecore.com/sxp/
+XP_SITECORE_TAG=10.3-ltsc2019
+
+XC_SITECORE_DOCKER_REGISTRY=scr.sitecore.com/sxc/
+XC_PACKAGES_TAG=10.3-ltsc2019
+
+ISOLATION=default
+
+SOLR_CORE_PREFIX_NAME=sitecore
+XC_GLOBAL_DB=SitecoreCommerce_Global
+XC_SHARED_DB=SitecoreCommerce_SharedEnvironments
+XC_SHARED_ARCHIVE_DB=SitecoreCommerce_ArchiveSharedEnvironments
diff --git a/sxc/10.3/xc1/cd/Dockerfile b/sxc/10.3/xc1/cd/Dockerfile
new file mode 100644
index 0000000..63868b4
--- /dev/null
+++ b/sxc/10.3/xc1/cd/Dockerfile
@@ -0,0 +1,35 @@
+# escape=`
+# This Dockerfile is used to generate images for the following roles: cd, cm
+
+ARG BASE_IMAGE
+ARG ASSETS_IMAGE
+
+FROM ${ASSETS_IMAGE} AS assets
+
+FROM ${BASE_IMAGE}
+
+ARG XC_ROLE_CONFIGS
+
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+
+ENV DOTNET_RUNNING_IN_CONTAINER=true
+
+WORKDIR c:/inetpub/wwwroot
+
+COPY --from=assets module/${XC_ROLE_CONFIGS}/content/inetpub/wwwroot .
+COPY --from=assets module/sample/content/inetpub/wwwroot .
+COPY --from=assets module/${XC_ROLE_CONFIGS}/content/Permissions C:\Permissions
+COPY --from=assets module/tools C:\tools
+
+# Copy any custom files from build location
+COPY . .
+
+RUN New-Item -Path C:\inetpub\wwwroot\App_Config -Name Security-Shared -ItemType directory; `
+ Push-Location c:/inetpub/wwwroot/App_Config/Include/Y.Commerce.Engine; `
+ Rename-Item Sitecore.Commerce.Engine.DataProvider.config.disabled Sitecore.Commerce.Engine.DataProvider.config; `
+ Rename-Item Sitecore.Commerce.Engine.Connectors.Index.Common.config.disabled Sitecore.Commerce.Engine.Connectors.Index.Common.config; `
+ Rename-Item Sitecore.Commerce.Engine.Connectors.Index.Solr.config.disabled Sitecore.Commerce.Engine.Connectors.Index.Solr.config; `
+ Pop-Location; `
+ Remove-Item -Path "./XConnectFiles/" -Recurse -Force;
+
+ENTRYPOINT ["C:\\LogMonitor\\LogMonitor.exe", "powershell", "C:\\tools\\scripts\\CopySecurityDomain.ps1; C:\\Run-W3SVCService.ps1"]
\ No newline at end of file
diff --git a/sxc/10.3/xc1/cd/readme b/sxc/10.3/xc1/cd/readme
new file mode 100644
index 0000000..fd639b5
--- /dev/null
+++ b/sxc/10.3/xc1/cd/readme
@@ -0,0 +1 @@
+Add Commerce custom XP1 CD content here
\ No newline at end of file
diff --git a/sxc/10.3/xc1/cm/Dockerfile b/sxc/10.3/xc1/cm/Dockerfile
new file mode 100644
index 0000000..63868b4
--- /dev/null
+++ b/sxc/10.3/xc1/cm/Dockerfile
@@ -0,0 +1,35 @@
+# escape=`
+# This Dockerfile is used to generate images for the following roles: cd, cm
+
+ARG BASE_IMAGE
+ARG ASSETS_IMAGE
+
+FROM ${ASSETS_IMAGE} AS assets
+
+FROM ${BASE_IMAGE}
+
+ARG XC_ROLE_CONFIGS
+
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+
+ENV DOTNET_RUNNING_IN_CONTAINER=true
+
+WORKDIR c:/inetpub/wwwroot
+
+COPY --from=assets module/${XC_ROLE_CONFIGS}/content/inetpub/wwwroot .
+COPY --from=assets module/sample/content/inetpub/wwwroot .
+COPY --from=assets module/${XC_ROLE_CONFIGS}/content/Permissions C:\Permissions
+COPY --from=assets module/tools C:\tools
+
+# Copy any custom files from build location
+COPY . .
+
+RUN New-Item -Path C:\inetpub\wwwroot\App_Config -Name Security-Shared -ItemType directory; `
+ Push-Location c:/inetpub/wwwroot/App_Config/Include/Y.Commerce.Engine; `
+ Rename-Item Sitecore.Commerce.Engine.DataProvider.config.disabled Sitecore.Commerce.Engine.DataProvider.config; `
+ Rename-Item Sitecore.Commerce.Engine.Connectors.Index.Common.config.disabled Sitecore.Commerce.Engine.Connectors.Index.Common.config; `
+ Rename-Item Sitecore.Commerce.Engine.Connectors.Index.Solr.config.disabled Sitecore.Commerce.Engine.Connectors.Index.Solr.config; `
+ Pop-Location; `
+ Remove-Item -Path "./XConnectFiles/" -Recurse -Force;
+
+ENTRYPOINT ["C:\\LogMonitor\\LogMonitor.exe", "powershell", "C:\\tools\\scripts\\CopySecurityDomain.ps1; C:\\Run-W3SVCService.ps1"]
\ No newline at end of file
diff --git a/sxc/10.3/xc1/cm/readme b/sxc/10.3/xc1/cm/readme
new file mode 100644
index 0000000..0b40203
--- /dev/null
+++ b/sxc/10.3/xc1/cm/readme
@@ -0,0 +1 @@
+Add Commerce custom XP1 CM content here
\ No newline at end of file
diff --git a/sxc/10.3/xc1/docker-compose.build.yml b/sxc/10.3/xc1/docker-compose.build.yml
new file mode 100644
index 0000000..f9e08de
--- /dev/null
+++ b/sxc/10.3/xc1/docker-compose.build.yml
@@ -0,0 +1,102 @@
+services:
+ mssql-init:
+ build:
+ isolation: ${ISOLATION}
+ context: ../xc-common/mssql/init
+ args:
+ BASE_IMAGE: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-xp1-mssql-init:${XP_SITECORE_TAG}
+ ASSETS_IMAGE: ${XC_SITECORE_DOCKER_REGISTRY}sitecore-xc1-assets:${XC_PACKAGES_TAG}
+ TOPOLOGY: xc1
+ image: xc1-mssql-init
+ solr-init:
+ build:
+ isolation: ${ISOLATION}
+ context: ../xc-common/solr-init
+ args:
+ BASE_IMAGE: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-xp1-solr-init:${XP_SITECORE_TAG}
+ ASSETS_IMAGE: ${XC_SITECORE_DOCKER_REGISTRY}sitecore-xc1-assets:${XC_PACKAGES_TAG}
+ XC_TOPOLOGY: xc1
+ SOLR_XDB_SCHEMA_FILE: "/Content/Website/App_Data/solrcommands/schema.json"
+ image: xc1-solr-init
+ solr-init-searchstax:
+ build:
+ isolation: ${ISOLATION}
+ context: ../xc-common/solr-init
+ args:
+ BASE_IMAGE: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-xp1-solr-init-searchstax:${XP_SITECORE_TAG}
+ ASSETS_IMAGE: ${XC_SITECORE_DOCKER_REGISTRY}sitecore-xc1-assets:${XC_PACKAGES_TAG}
+ XC_TOPOLOGY: xc1
+ SOLR_XDB_SCHEMA_FILE: "/Content/Website/App_Data/solrcommands/schema.json"
+ image: xc1-solr-init-searchstax
+ xdbcollection:
+ build:
+ isolation: ${ISOLATION}
+ context: ../xc-common/prc-rep
+ args:
+ BASE_IMAGE: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-xp1-xdbcollection:${XP_SITECORE_TAG}
+ ASSETS_IMAGE: ${XC_SITECORE_DOCKER_REGISTRY}sitecore-xc1-assets:${XC_PACKAGES_TAG}
+ ROLE: xdbcollection
+ image: sitecore-xc1-xdbcollection
+ prc:
+ build:
+ isolation: ${ISOLATION}
+ context: ../xc-common/prc-rep
+ args:
+ BASE_IMAGE: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-xp1-prc:${XP_SITECORE_TAG}
+ ASSETS_IMAGE: ${XC_SITECORE_DOCKER_REGISTRY}sitecore-xc1-assets:${XC_PACKAGES_TAG}
+ ROLE: prcrep
+ image: sitecore-xc1-prc
+ cm:
+ build:
+ isolation: ${ISOLATION}
+ context: ./cm
+ args:
+ BASE_IMAGE: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-xp1-cm:${XP_SITECORE_TAG}
+ ASSETS_IMAGE: ${XC_SITECORE_DOCKER_REGISTRY}sitecore-xc1-assets:${XC_PACKAGES_TAG}
+ XC_ROLE_CONFIGS: cm
+ image: xc1-cm
+ cd:
+ build:
+ isolation: ${ISOLATION}
+ context: ./cd
+ args:
+ BASE_IMAGE: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-xp1-cd:${XP_SITECORE_TAG}
+ ASSETS_IMAGE: ${XC_SITECORE_DOCKER_REGISTRY}sitecore-xc1-assets:${XC_PACKAGES_TAG}
+ XC_ROLE_CONFIGS: cd
+ image: xc1-cd
+ xdbsearch:
+ build:
+ isolation: ${ISOLATION}
+ context: ../xc-common/xdbsearch
+ args:
+ BASE_IMAGE: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-xp1-xdbsearch:${XP_SITECORE_TAG}
+ ASSETS_IMAGE: ${XC_SITECORE_DOCKER_REGISTRY}sitecore-xc1-assets:${XC_PACKAGES_TAG}
+ CONTENT_PATH: xdbsearch/content/inetpub/wwwroot/App_Data/jobs/continuous/IndexWorker
+ image: sitecore-xc1-xdbsearch
+ xdbsearchworker:
+ build:
+ isolation: ${ISOLATION}
+ context: ../xc-common/xdbworkers
+ args:
+ BASE_IMAGE: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-xp1-xdbsearchworker:${XP_SITECORE_TAG}
+ ASSETS_IMAGE: ${XC_SITECORE_DOCKER_REGISTRY}sitecore-xc1-assets:${XC_PACKAGES_TAG}
+ CONTENT_PATH: xdbsearchworker/content/inetpub/wwwroot/App_Data/jobs/continuous/IndexWorker
+ image: sitecore-xc1-xdbsearchworker
+ xdbautomation:
+ build:
+ isolation: ${ISOLATION}
+ context: ../xc-common/xdbautomation
+ args:
+ BASE_IMAGE: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-xp1-xdbautomation:${XP_SITECORE_TAG}
+ ASSETS_IMAGE: ${XC_SITECORE_DOCKER_REGISTRY}sitecore-xc1-assets:${XC_PACKAGES_TAG}
+ CONTENT_PATH: xdbautomation/content/inetpub/wwwroot/App_data/jobs/continuous/AutomationEngine
+ image: sitecore-xc1-xdbautomation
+ xdbautomationworker:
+ build:
+ isolation: ${ISOLATION}
+ context: ../xc-common/xdbworkers
+ args:
+ BASE_IMAGE: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-xp1-xdbautomationworker:${XP_SITECORE_TAG}
+ ASSETS_IMAGE: ${XC_SITECORE_DOCKER_REGISTRY}sitecore-xc1-assets:${XC_PACKAGES_TAG}
+ CONTENT_PATH: xdbautomationworker/content/inetpub/wwwroot/App_Data/jobs/continuous/AutomationEngine
+ image: sitecore-xc1-xdbautomationworker
diff --git a/sxc/10.3/xc1/prcrep/keep.txt b/sxc/10.3/xc1/prcrep/keep.txt
new file mode 100644
index 0000000..e69de29
diff --git a/sxc/10.3/xc1/xdbautomation/keep.txt b/sxc/10.3/xc1/xdbautomation/keep.txt
new file mode 100644
index 0000000..e69de29
diff --git a/sxc/10.3/xc1/xdbcollection/keep.txt b/sxc/10.3/xc1/xdbcollection/keep.txt
new file mode 100644
index 0000000..e69de29
diff --git a/sxc/10.3/xc1/xdbsearch/keep.txt b/sxc/10.3/xc1/xdbsearch/keep.txt
new file mode 100644
index 0000000..e69de29