diff --git a/sxc/10.0/k8s-commerce-xc1/bizfx.yaml b/sxc/10.0/k8s-commerce-xc1/bizfx.yaml
new file mode 100644
index 0000000..b0e8d6a
--- /dev/null
+++ b/sxc/10.0/k8s-commerce-xc1/bizfx.yaml
@@ -0,0 +1,78 @@
+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: {registry}/{sxc-project}/sitecore-xc-bizfx:{commerce-version}
+ 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.globalhost
+ - name: sitecore_xc_bizfx_authoring_url
+ value: https://authoring.globalhost
+ - name: sitecore_xc_bizfx_identity_server_url
+ value: https://id.globalhost
+ 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
+ imagePullSecrets:
+ - name: sitecore-docker-registry
\ No newline at end of file
diff --git a/sxc/10.0/k8s-commerce-xc1/cd.yaml b/sxc/10.0/k8s-commerce-xc1/cd.yaml
new file mode 100644
index 0000000..38bf427
--- /dev/null
+++ b/sxc/10.0/k8s-commerce-xc1/cd.yaml
@@ -0,0 +1,201 @@
+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: mcr.microsoft.com/powershell:lts-nanoserver-1809
+ command: ["pwsh", "-Command", "do { Start-Sleep -Seconds 3 } until ($(try {(iwr http://xdbcollection/healthz/ready).StatusCode -eq 200} catch { $false }));"]
+ - name: wait-xdbautomation
+ image: mcr.microsoft.com/powershell:lts-nanoserver-1809
+ command: ["pwsh", "-Command", "do { Start-Sleep -Seconds 3 } until ($(try {(iwr http://xdbautomation/healthz/ready).StatusCode -eq 200} catch { $false }));"]
+ - name: wait-xdbautomationrpt
+ image: mcr.microsoft.com/powershell:lts-nanoserver-1809
+ command: ["pwsh", "-Command", "do { Start-Sleep -Seconds 3 } until ($(try {(iwr http://xdbautomationrpt/healthz/ready).StatusCode -eq 200} catch { $false }));"]
+ - name: wait-xdbrefdata
+ image: mcr.microsoft.com/powershell:lts-nanoserver-1809
+ 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: {registry}/{sxc-project}/sitecore-xc1-cd:{commerce-version}
+ ports:
+ - containerPort: 80
+ volumeMounts:
+ - name: config-storage-volume
+ mountPath: "/inetpub/wwwroot/App_Config/Security-Shared"
+ 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: 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=Sitecore.Core;User ID=$(Core_Database_Username);Password=$(Core_Database_Password);
+ - name: Sitecore_ConnectionStrings_Web
+ value: Data Source=$(Database_Server);Initial Catalog=Sitecore.Web;User ID=$(Web_Database_Username);Password=$(Web_Database_Password);
+ - name: Sitecore_ConnectionStrings_Messaging
+ value: Data Source=$(Database_Server);Initial Catalog=Sitecore.Messaging;User ID=$(Messaging_Database_Username);Password=$(Messaging_Database_Password);
+ - name: Sitecore_ConnectionStrings_ExperienceForms
+ value: Data Source=$(Database_Server);Initial Catalog=Sitecore.ExperienceForms;User ID=$(Forms_Database_Username);Password=$(Forms_Database_Password);
+ - name: Sitecore_ConnectionStrings_Exm.Master
+ value: Data Source=$(Database_Server);Initial Catalog=Sitecore.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_Identity_Server_Authority
+ value: https://id.globalhost
+ - 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-ops: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
+ volumes:
+ - 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.0/k8s-commerce-xc1/cm.yaml b/sxc/10.0/k8s-commerce-xc1/cm.yaml
new file mode 100644
index 0000000..a70416a
--- /dev/null
+++ b/sxc/10.0/k8s-commerce-xc1/cm.yaml
@@ -0,0 +1,281 @@
+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: mcr.microsoft.com/powershell:lts-nanoserver-1809
+ command: ["pwsh", "-Command", "do { Start-Sleep -Seconds 3 } until ($(try {(iwr http://xdbcollection/healthz/ready).StatusCode -eq 200} catch { $false }));"]
+ - name: wait-xdbsearch
+ image: mcr.microsoft.com/powershell:lts-nanoserver-1809
+ command: ["pwsh", "-Command", "do { Start-Sleep -Seconds 3 } until ($(try {(iwr http://xdbsearch/healthz/ready).StatusCode -eq 200} catch { $false }));"]
+ - name: wait-cortexreporting
+ image: mcr.microsoft.com/powershell:lts-nanoserver-1809
+ command: ["pwsh", "-Command", "do { Start-Sleep -Seconds 3 } until ($(try {(iwr http://cortexreporting/healthz/ready).StatusCode -eq 200} catch { $false }));"]
+ - name: wait-xdbautomation
+ image: mcr.microsoft.com/powershell:lts-nanoserver-1809
+ command: ["pwsh", "-Command", "do { Start-Sleep -Seconds 3 } until ($(try {(iwr http://xdbautomation/healthz/ready).StatusCode -eq 200} catch { $false }));"]
+ - name: wait-xdbautomationrpt
+ image: mcr.microsoft.com/powershell:lts-nanoserver-1809
+ command: ["pwsh", "-Command", "do { Start-Sleep -Seconds 3 } until ($(try {(iwr http://xdbautomationrpt/healthz/ready).StatusCode -eq 200} catch { $false }));"]
+ - name: wait-xdbrefdata
+ image: mcr.microsoft.com/powershell:lts-nanoserver-1809
+ 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: {registry}/{sxc-project}/sitecore-xc1-cm:{commerce-version}
+ ports:
+ - containerPort: 80
+ volumeMounts:
+ - name: config-storage-volume
+ mountPath: "/inetpub/wwwroot/App_Config/Security-Shared"
+ 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: Sitecore_xc_Client_Secret_Hash
+ valueFrom:
+ secretKeyRef:
+ name: commerce-connect-client
+ key: commerce-connect-clientsecret.txt
+ - name: Sitecore_ConnectionStrings_Core
+ value: Data Source=$(Database_Server);Initial Catalog=Sitecore.Core;User ID=$(Core_Database_Username);Password=$(Core_Database_Password);
+ - name: Sitecore_ConnectionStrings_Security
+ value: Data Source=$(Database_Server);Initial Catalog=Sitecore.Core;User ID=$(Core_Database_Username);Password=$(Core_Database_Password);
+ - name: Sitecore_ConnectionStrings_Master
+ value: Data Source=$(Database_Server);Initial Catalog=Sitecore.Master;User ID=$(Master_Database_Username);Password=$(Master_Database_Password);
+ - name: Sitecore_ConnectionStrings_Web
+ value: Data Source=$(Database_Server);Initial Catalog=Sitecore.Web;User ID=$(Web_Database_Username);Password=$(Web_Database_Password);
+ - name: Sitecore_ConnectionStrings_Messaging
+ value: Data Source=$(Database_Server);Initial Catalog=Sitecore.Messaging;User ID=$(Messaging_Database_Username);Password=$(Messaging_Database_Password);
+ - name: Sitecore_ConnectionStrings_Xdb.Referencedata
+ value: Data Source=$(Database_Server);Initial Catalog=Sitecore.Referencedata;User ID=$(Reference_Data_Database_Username);Password=$(Reference_Data_Database_Password);
+ - name: Sitecore_ConnectionStrings_ExperienceForms
+ value: Data Source=$(Database_Server);Initial Catalog=Sitecore.ExperienceForms;User ID=$(Forms_Database_Username);Password=$(Forms_Database_Password);
+ - name: Sitecore_ConnectionStrings_Exm.Master
+ value: Data Source=$(Database_Server);Initial Catalog=Sitecore.Exm.master;User ID=$(Exm_Master_Database_Username);Password=$(Exm_Master_Database_Password);
+ - name: Sitecore_ConnectionStrings_Reporting
+ value: Data Source=$(Database_Server);Initial Catalog=Sitecore.Reporting;User ID=$(Reporting_Database_Username);Password=$(Reporting_Database_Password);
+ - name: Sitecore_ConnectionStrings_Sitecore.Reporting.Client
+ value: http://cortexreporting
+ - 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_Reporting_Service_Url
+ value: http://rep
+ - name: Sitecore_Processing_Service_Url
+ value: http://prc
+ - name: Sitecore_Reporting_Service_Require_Https
+ value: 'false'
+ - name: Sitecore_Processing_Service_Require_Https
+ value: 'false'
+ - name: Sitecore_Identity_Server_Authority
+ value: https://id.globalhost
+ - name: Sitecore_Identity_Server_CallbackAuthority
+ value: https://cm.globalhost
+ - name: Sitecore_Identity_Server_InternalAuthority
+ value: http://id
+ - name: Sitecore_Identity_Server_Require_Https
+ value: "false"
+ - name: Sitecore_xc_Minions_Url
+ value: http://engine-minions:5000/commerceops/
+ - name: Sitecore_xc_Ops_Url
+ value: http://engine-ops: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
+ volumes:
+ - 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.0/k8s-commerce-xc1/cortexprocessing.yaml b/sxc/10.0/k8s-commerce-xc1/cortexprocessing.yaml
new file mode 100644
index 0000000..05ae6f7
--- /dev/null
+++ b/sxc/10.0/k8s-commerce-xc1/cortexprocessing.yaml
@@ -0,0 +1,79 @@
+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: {registry}/{project}/sitecore-xp1-cortexprocessing:{version}
+ ports:
+ - containerPort: 80
+ env:
+ - name: Database_Server
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseservername.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: Sitecore_ConnectionStrings_Processing.Engine.Storage
+ value: Data Source=$(Database_Server);Initial Catalog=Sitecore.Processing.Engine.Storage;User ID=$(Processing_Engine_Storage_Database_Username);Password=$(Processing_Engine_Storage_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
+ imagePullSecrets:
+ - name: sitecore-docker-registry
\ No newline at end of file
diff --git a/sxc/10.0/k8s-commerce-xc1/cortexprocessingworker.yaml b/sxc/10.0/k8s-commerce-xc1/cortexprocessingworker.yaml
new file mode 100644
index 0000000..49d6564
--- /dev/null
+++ b/sxc/10.0/k8s-commerce-xc1/cortexprocessingworker.yaml
@@ -0,0 +1,126 @@
+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: mcr.microsoft.com/powershell:lts-nanoserver-1809
+ command: ["pwsh", "-Command", "do { Start-Sleep -Seconds 3 } until ($(try {(iwr http://xdbcollection/healthz/ready).StatusCode -eq 200} catch { $false }));"]
+ - name: wait-xdbsearch
+ image: mcr.microsoft.com/powershell:lts-nanoserver-1809
+ 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: {registry}/{project}/sitecore-xp1-cortexprocessingworker:{version}
+ 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: 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: Sitecore_License
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-license
+ key: sitecore-license.txt
+ - name: Sitecore_ConnectionStrings_Processing.Engine.Storage
+ value: Data Source=$(Database_Server);Initial Catalog=Sitecore.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=Sitecore.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_Messaging
+ value: Data Source=$(Database_Server);Initial Catalog=Sitecore.Messaging;User ID=$(Messaging_Database_Username);Password=$(Messaging_Database_Password);
+ - name: Sitecore_ConnectionStrings_Reporting
+ value: Data Source=$(Database_Server);Initial Catalog=Sitecore.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
+ imagePullSecrets:
+ - name: sitecore-docker-registry
\ No newline at end of file
diff --git a/sxc/10.0/k8s-commerce-xc1/cortexreporting.yaml b/sxc/10.0/k8s-commerce-xc1/cortexreporting.yaml
new file mode 100644
index 0000000..317ff28
--- /dev/null
+++ b/sxc/10.0/k8s-commerce-xc1/cortexreporting.yaml
@@ -0,0 +1,79 @@
+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: {registry}/{project}/sitecore-xp1-cortexreporting:{version}
+ 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: Sitecore_ConnectionStrings_Reporting
+ value: Data Source=$(Database_Server);Initial Catalog=Sitecore.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
+ imagePullSecrets:
+ - name: sitecore-docker-registry
\ No newline at end of file
diff --git a/sxc/10.0/k8s-commerce-xc1/engine-authoring.yaml b/sxc/10.0/k8s-commerce-xc1/engine-authoring.yaml
new file mode 100644
index 0000000..56889a6
--- /dev/null
+++ b/sxc/10.0/k8s-commerce-xc1/engine-authoring.yaml
@@ -0,0 +1,200 @@
+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: {registry}/{sxc-project}/sitecore-xc-engine:{commerce-version}
+ ports:
+ - containerPort: 5000
+ env:
+ - name: Database_Server
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseservername.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: COMMERCEENGINE_AppSettings__EnvironmentName
+ value: HabitatAuthoring
+ - name: COMMERCEENGINE_AppSettings__SitecoreIdentityServerUrl
+ value: https://id.globalhost
+ - name: COMMERCEENGINE_AppSettings__InternalSitecoreIdentityServerUrl
+ value: http://id
+ - name: COMMERCEENGINE_AppSettings__AllowedOrigins
+ value: https://bizfx.globalhost|https://cm.globalhost|https://cd.globalhost
+ - 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_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.globalhost
+ - name: COMMERCEENGINE_IsSolrCloud
+ value: "true"
+ - name: COMMERCEENGINE_StorefrontIndexPrefix_web_index
+ value: sitecore_web_index
+ - name: COMMERCEENGINE_StorefrontIndexPrefix_master_index
+ value: sitecore_master_index
+ - name: COMMERCEENGINE_SearchIndexPrefixOrdersScope
+ value: commerce_OrdersScope
+ - name: COMMERCEENGINE_SearchIndexPrefixOrdersScope-Rebuild
+ value: commerce_OrdersScope-Rebuild
+ - name: COMMERCEENGINE_SearchIndexPrefixCustomersScope
+ value: commerce_CustomersScope
+ - name: COMMERCEENGINE_SearchIndexPrefixCustomersScope-Rebuild
+ value: commerce_CustomersScope-Rebuild
+ - name: COMMERCEENGINE_SearchIndexPrefixCatalogItemsScope
+ value: commerce_CatalogItemsScope
+ - name: COMMERCEENGINE_SearchIndexPrefixCatalogItemsScope-Rebuild
+ value: commerce_CatalogItemsScope-Rebuild
+ - name: COMMERCEENGINE_SearchIndexPrefixPromotionsScope
+ value: commerce_PromotionsScope
+ - name: COMMERCEENGINE_SearchIndexPrefixPromotionsScope-Rebuild
+ value: commerce_PromotionsScope-Rebuild
+ - name: COMMERCEENGINE_SearchIndexPrefixPriceCardsScope
+ value: commerce_PriceCardsScope
+ - name: COMMERCEENGINE_SearchIndexPrefixPriceCardsScope-Rebuild
+ value: commerce_PriceCardsScope-Rebuild
+ - name: COMMERCEENGINE_EngineAuthoringUrl
+ value: https://authoring.globalhost
+ - name: COMMERCEENGINE_EngineShopsUrl
+ value: https://shops.globalhost
+ - name: COMMERCEENGINE_EngineMinionsUrl
+ value: https://minions.globalhost
+ 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
+ imagePullSecrets:
+ - name: sitecore-docker-registry
\ No newline at end of file
diff --git a/sxc/10.0/k8s-commerce-xc1/engine-minions.yaml b/sxc/10.0/k8s-commerce-xc1/engine-minions.yaml
new file mode 100644
index 0000000..e3ec644
--- /dev/null
+++ b/sxc/10.0/k8s-commerce-xc1/engine-minions.yaml
@@ -0,0 +1,200 @@
+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: {registry}/{sxc-project}/sitecore-xc-engine:{commerce-version}
+ ports:
+ - containerPort: 5000
+ env:
+ - name: Database_Server
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseservername.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: COMMERCEENGINE_AppSettings__EnvironmentName
+ value: HabitatMinions
+ - name: COMMERCEENGINE_AppSettings__SitecoreIdentityServerUrl
+ value: https://id.globalhost
+ - name: COMMERCEENGINE_AppSettings__InternalSitecoreIdentityServerUrl
+ value: http://id
+ - name: COMMERCEENGINE_AppSettings__AllowedOrigins
+ value: https://bizfx.globalhost|https://cm.globalhost|https://cd.globalhost
+ - 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_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.globalhost
+ - name: COMMERCEENGINE_IsSolrCloud
+ value: "true"
+ - name: COMMERCEENGINE_StorefrontIndexPrefix_web_index
+ value: sitecore_web_index
+ - name: COMMERCEENGINE_StorefrontIndexPrefix_master_index
+ value: sitecore_master_index
+ - name: COMMERCEENGINE_SearchIndexPrefixOrdersScope
+ value: commerce_OrdersScope
+ - name: COMMERCEENGINE_SearchIndexPrefixOrdersScope-Rebuild
+ value: commerce_OrdersScope-Rebuild
+ - name: COMMERCEENGINE_SearchIndexPrefixCustomersScope
+ value: commerce_CustomersScope
+ - name: COMMERCEENGINE_SearchIndexPrefixCustomersScope-Rebuild
+ value: commerce_CustomersScope-Rebuild
+ - name: COMMERCEENGINE_SearchIndexPrefixCatalogItemsScope
+ value: commerce_CatalogItemsScope
+ - name: COMMERCEENGINE_SearchIndexPrefixCatalogItemsScope-Rebuild
+ value: commerce_CatalogItemsScope-Rebuild
+ - name: COMMERCEENGINE_SearchIndexPrefixPromotionsScope
+ value: commerce_PromotionsScope
+ - name: COMMERCEENGINE_SearchIndexPrefixPromotionsScope-Rebuild
+ value: commerce_PromotionsScope-Rebuild
+ - name: COMMERCEENGINE_SearchIndexPrefixPriceCardsScope
+ value: commerce_PriceCardsScope
+ - name: COMMERCEENGINE_SearchIndexPrefixPriceCardsScope-Rebuild
+ value: commerce_PriceCardsScope-Rebuild
+ - name: COMMERCEENGINE_EngineAuthoringUrl
+ value: https://authoring.globalhost
+ - name: COMMERCEENGINE_EngineShopsUrl
+ value: https://shops.globalhost
+ - name: COMMERCEENGINE_EngineMinionsUrl
+ value: https://minions.globalhost
+ 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
+ imagePullSecrets:
+ - name: sitecore-docker-registry
\ No newline at end of file
diff --git a/sxc/10.0/k8s-commerce-xc1/engine-ops.yaml b/sxc/10.0/k8s-commerce-xc1/engine-ops.yaml
new file mode 100644
index 0000000..3156ec6
--- /dev/null
+++ b/sxc/10.0/k8s-commerce-xc1/engine-ops.yaml
@@ -0,0 +1,200 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: engine-ops
+spec:
+ selector:
+ app: engine-ops
+ ports:
+ - protocol: TCP
+ port: 5000
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: engine-ops
+ labels:
+ app: engine-ops
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: engine-ops
+ template:
+ metadata:
+ labels:
+ app: engine-ops
+ spec:
+ nodeSelector:
+ kubernetes.io/os: windows
+ containers:
+ - name: sitecore-xc-engine
+ image: {registry}/{sxc-project}/sitecore-xc-engine:{commerce-version}
+ ports:
+ - containerPort: 5000
+ env:
+ - name: Database_Server
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseservername.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: COMMERCEENGINE_AppSettings__EnvironmentName
+ value: HabitatOps
+ - name: COMMERCEENGINE_AppSettings__SitecoreIdentityServerUrl
+ value: https://id.globalhost
+ - name: COMMERCEENGINE_AppSettings__InternalSitecoreIdentityServerUrl
+ value: http://id
+ - name: COMMERCEENGINE_AppSettings__AllowedOrigins
+ value: https://bizfx.globalhost|https://cm.globalhost|https://cd.globalhost
+ - 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_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.globalhost
+ - name: COMMERCEENGINE_IsSolrCloud
+ value: "true"
+ - name: COMMERCEENGINE_StorefrontIndexPrefix_web_index
+ value: sitecore_web_index
+ - name: COMMERCEENGINE_StorefrontIndexPrefix_master_index
+ value: sitecore_master_index
+ - name: COMMERCEENGINE_SearchIndexPrefixOrdersScope
+ value: commerce_OrdersScope
+ - name: COMMERCEENGINE_SearchIndexPrefixOrdersScope-Rebuild
+ value: commerce_OrdersScope-Rebuild
+ - name: COMMERCEENGINE_SearchIndexPrefixCustomersScope
+ value: commerce_CustomersScope
+ - name: COMMERCEENGINE_SearchIndexPrefixCustomersScope-Rebuild
+ value: commerce_CustomersScope-Rebuild
+ - name: COMMERCEENGINE_SearchIndexPrefixCatalogItemsScope
+ value: commerce_CatalogItemsScope
+ - name: COMMERCEENGINE_SearchIndexPrefixCatalogItemsScope-Rebuild
+ value: commerce_CatalogItemsScope-Rebuild
+ - name: COMMERCEENGINE_SearchIndexPrefixPromotionsScope
+ value: commerce_PromotionsScope
+ - name: COMMERCEENGINE_SearchIndexPrefixPromotionsScope-Rebuild
+ value: commerce_PromotionsScope-Rebuild
+ - name: COMMERCEENGINE_SearchIndexPrefixPriceCardsScope
+ value: commerce_PriceCardsScope
+ - name: COMMERCEENGINE_SearchIndexPrefixPriceCardsScope-Rebuild
+ value: commerce_PriceCardsScope-Rebuild
+ - name: COMMERCEENGINE_EngineAuthoringUrl
+ value: https://authoring.globalhost
+ - name: COMMERCEENGINE_EngineShopsUrl
+ value: https://shops.globalhost
+ - name: COMMERCEENGINE_EngineMinionsUrl
+ value: https://minions.globalhost
+ 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
+ imagePullSecrets:
+ - name: sitecore-docker-registry
\ No newline at end of file
diff --git a/sxc/10.0/k8s-commerce-xc1/engine-shops.yaml b/sxc/10.0/k8s-commerce-xc1/engine-shops.yaml
new file mode 100644
index 0000000..fea04d0
--- /dev/null
+++ b/sxc/10.0/k8s-commerce-xc1/engine-shops.yaml
@@ -0,0 +1,200 @@
+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: {registry}/{sxc-project}/sitecore-xc-engine:{commerce-version}
+ ports:
+ - containerPort: 5000
+ env:
+ - name: Database_Server
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databaseservername.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: COMMERCEENGINE_AppSettings__EnvironmentName
+ value: HabitatShops
+ - name: COMMERCEENGINE_AppSettings__SitecoreIdentityServerUrl
+ value: https://id.globalhost
+ - name: COMMERCEENGINE_AppSettings__InternalSitecoreIdentityServerUrl
+ value: http://id
+ - name: COMMERCEENGINE_AppSettings__AllowedOrigins
+ value: https://bizfx.globalhost|https://cm.globalhost|https://cd.globalhost
+ - 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_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.globalhost
+ - name: COMMERCEENGINE_IsSolrCloud
+ value: "true"
+ - name: COMMERCEENGINE_StorefrontIndexPrefix_web_index
+ value: sitecore_web_index
+ - name: COMMERCEENGINE_StorefrontIndexPrefix_master_index
+ value: sitecore_master_index
+ - name: COMMERCEENGINE_SearchIndexPrefixOrdersScope
+ value: commerce_OrdersScope
+ - name: COMMERCEENGINE_SearchIndexPrefixOrdersScope-Rebuild
+ value: commerce_OrdersScope-Rebuild
+ - name: COMMERCEENGINE_SearchIndexPrefixCustomersScope
+ value: commerce_CustomersScope
+ - name: COMMERCEENGINE_SearchIndexPrefixCustomersScope-Rebuild
+ value: commerce_CustomersScope-Rebuild
+ - name: COMMERCEENGINE_SearchIndexPrefixCatalogItemsScope
+ value: commerce_CatalogItemsScope
+ - name: COMMERCEENGINE_SearchIndexPrefixCatalogItemsScope-Rebuild
+ value: commerce_CatalogItemsScope-Rebuild
+ - name: COMMERCEENGINE_SearchIndexPrefixPromotionsScope
+ value: commerce_PromotionsScope
+ - name: COMMERCEENGINE_SearchIndexPrefixPromotionsScope-Rebuild
+ value: commerce_PromotionsScope-Rebuild
+ - name: COMMERCEENGINE_SearchIndexPrefixPriceCardsScope
+ value: commerce_PriceCardsScope
+ - name: COMMERCEENGINE_SearchIndexPrefixPriceCardsScope-Rebuild
+ value: PriceCardsScope-Rebuild
+ - name: COMMERCEENGINE_EngineAuthoringUrl
+ value: https://authoring.globalhost
+ - name: COMMERCEENGINE_EngineShopsUrl
+ value: https://shops.globalhost
+ - name: COMMERCEENGINE_EngineMinionsUrl
+ value: https://minions.globalhost
+ 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
+ imagePullSecrets:
+ - name: sitecore-docker-registry
\ No newline at end of file
diff --git a/sxc/10.0/k8s-commerce-xc1/external/mssql.yaml b/sxc/10.0/k8s-commerce-xc1/external/mssql.yaml
new file mode 100644
index 0000000..4bd1738
--- /dev/null
+++ b/sxc/10.0/k8s-commerce-xc1/external/mssql.yaml
@@ -0,0 +1,44 @@
+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: windows
+ containers:
+ - name: mssql
+ image: {registry}/{nonproduction-project}/mssql-developer:2017-{short-version-ltsc}
+ ports:
+ - containerPort: 1433
+ env:
+ - name: SA_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-database
+ key: sitecore-databasepassword.txt
+ - name: ACCEPT_EULA
+ value: "Y"
+ imagePullSecrets:
+ - name: sitecore-docker-registry
\ No newline at end of file
diff --git a/sxc/10.0/k8s-commerce-xc1/external/redis.yaml b/sxc/10.0/k8s-commerce-xc1/external/redis.yaml
new file mode 100644
index 0000000..a7e1359
--- /dev/null
+++ b/sxc/10.0/k8s-commerce-xc1/external/redis.yaml
@@ -0,0 +1,36 @@
+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:
+ nodeSelector:
+ kubernetes.io/os: windows
+ containers:
+ - name: sitecore-redis
+ image: {registry}/{project}/sitecore-redis:{version}
+ ports:
+ - containerPort: 6379
+ imagePullSecrets:
+ - name: sitecore-docker-registry
\ No newline at end of file
diff --git a/sxc/10.0/k8s-commerce-xc1/external/solr.yaml b/sxc/10.0/k8s-commerce-xc1/external/solr.yaml
new file mode 100644
index 0000000..c4d1b10
--- /dev/null
+++ b/sxc/10.0/k8s-commerce-xc1/external/solr.yaml
@@ -0,0 +1,39 @@
+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: windows
+ containers:
+ - name: solr
+ image: {registry}/{nonproduction-project}/solr:8.4.0-{short-version-ltsc}
+ ports:
+ - containerPort: 8983
+ env:
+ - name: SOLR_MODE
+ value: solrcloud
+ imagePullSecrets:
+ - name: sitecore-docker-registry
\ No newline at end of file
diff --git a/sxc/10.0/k8s-commerce-xc1/id.yaml b/sxc/10.0/k8s-commerce-xc1/id.yaml
new file mode 100644
index 0000000..84eb9d3
--- /dev/null
+++ b/sxc/10.0/k8s-commerce-xc1/id.yaml
@@ -0,0 +1,114 @@
+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: {registry}/{sxc-project}/sitecore-xc-id:{commerce-version}
+ 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: 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=Sitecore.Core;User ID=$(Core_Database_Username);Password=$(Core_Database_Password);
+ - name: Sitecore_Sitecore__IdentityServer__AccountOptions__PasswordRecoveryUrl
+ value: https://cm.globalhost/sitecore/login?rc=1
+ - name: Sitecore_Sitecore__IdentityServer__Clients__DefaultClient__AllowedCorsOrigins__AllowedCorsOriginsGroup1
+ value: https://cm.globalhost
+ - name: Sitecore_Sitecore__IdentityServer__PublicOrigin
+ value: https://id.globalhost
+ - name: Sitecore_Sitecore__IdentityServer__Clients__CommerceClient__AllowedCorsOrigins__AllowedCorsOriginsGroup1
+ value: https://bizfx.globalhost|https://authoring.globalhost
+ - name: Sitecore_Sitecore__IdentityServer__Clients__CommerceEngineConnectClient__AllowedCorsOrigins__AllowedCorsOriginsGroup1
+ value: https://cm.globalhost|https://cd.globalhost
+ 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
+ imagePullSecrets:
+ - name: sitecore-docker-registry
diff --git a/sxc/10.0/k8s-commerce-xc1/ingress-nginx/configuration.yaml b/sxc/10.0/k8s-commerce-xc1/ingress-nginx/configuration.yaml
new file mode 100644
index 0000000..af60a88
--- /dev/null
+++ b/sxc/10.0/k8s-commerce-xc1/ingress-nginx/configuration.yaml
@@ -0,0 +1,7 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: nginx-ingress-controller
+data:
+ use-forwarded-headers: "true"
+ enable-underscores-in-headers: "true"
\ No newline at end of file
diff --git a/sxc/10.0/k8s-commerce-xc1/ingress-nginx/ingress.yaml b/sxc/10.0/k8s-commerce-xc1/ingress-nginx/ingress.yaml
new file mode 100644
index 0000000..1b569ec
--- /dev/null
+++ b/sxc/10.0/k8s-commerce-xc1/ingress-nginx/ingress.yaml
@@ -0,0 +1,93 @@
+apiVersion: extensions/v1beta1
+kind: Ingress
+metadata:
+ name: sitecore-ingress
+ annotations:
+ nginx.ingress.kubernetes.io/affinity: "cookie"
+ nginx.ingress.kubernetes.io/proxy-buffer-size: "32k"
+ nginx.ingress.kubernetes.io/proxy-read-timeout: "600"
+ nginx.ingress.kubernetes.io/proxy-send-timeout: "600"
+ nginx.ingress.kubernetes.io/rewrite-target: /
+spec:
+ rules:
+ - host: cd.globalhost
+ http:
+ paths:
+ - path: /
+ backend:
+ serviceName: cd
+ servicePort: 80
+ - host: cm.globalhost
+ http:
+ paths:
+ - path: /
+ backend:
+ serviceName: cm
+ servicePort: 80
+ - host: id.globalhost
+ http:
+ paths:
+ - path: /
+ backend:
+ serviceName: id
+ servicePort: 80
+ - host: bizfx.globalhost
+ http:
+ paths:
+ - path: /
+ backend:
+ serviceName: bizfx
+ servicePort: 80
+ - host: authoring.globalhost
+ http:
+ paths:
+ - path: /
+ backend:
+ serviceName: engine-authoring
+ servicePort: 5000
+ - host: minions.globalhost
+ http:
+ paths:
+ - path: /
+ backend:
+ serviceName: engine-minions
+ servicePort: 5000
+ - host: ops.globalhost
+ http:
+ paths:
+ - path: /
+ backend:
+ serviceName: engine-ops
+ servicePort: 5000
+ - host: shops.globalhost
+ http:
+ paths:
+ - path: /
+ backend:
+ serviceName: engine-shops
+ servicePort: 5000
+ tls:
+ - secretName: global-cd-tls
+ hosts:
+ - cd.globalhost
+ - secretName: global-cm-tls
+ hosts:
+ - cm.globalhost
+ - secretName: global-id-tls
+ hosts:
+ - id.globalhost
+ - secretName: global-bizfx-tls
+ hosts:
+ - bizfx.globalhost
+ - secretName: global-authoring-tls
+ hosts:
+ - authoring.globalhost
+ - secretName: global-minions-tls
+ hosts:
+ - minions.globalhost
+ - secretName: global-ops-tls
+ hosts:
+ - ops.globalhost
+ - secretName: global-shops-tls
+ hosts:
+ - shops.globalhost
\ No newline at end of file
diff --git a/sxc/10.0/k8s-commerce-xc1/init/mssql-init.yaml b/sxc/10.0/k8s-commerce-xc1/init/mssql-init.yaml
new file mode 100644
index 0000000..11d2b2e
--- /dev/null
+++ b/sxc/10.0/k8s-commerce-xc1/init/mssql-init.yaml
@@ -0,0 +1,182 @@
+apiVersion: batch/v1
+kind: Job
+metadata:
+ name: mssql-init
+spec:
+ template:
+ spec:
+ imagePullSecrets:
+ - name: sitecore-docker-registry
+ containers:
+ - name: mssql-init
+ image: {registry}/{sxc-project}/sitecore-xc1-mssql-init:{commerce-version}
+ 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: SITECORE_CORE_DB
+ value: Sitecore.Core
+ restartPolicy: Never
+ backoffLimit: 5
\ No newline at end of file
diff --git a/sxc/10.0/k8s-commerce-xc1/init/solr-init.yaml b/sxc/10.0/k8s-commerce-xc1/init/solr-init.yaml
new file mode 100644
index 0000000..becee18
--- /dev/null
+++ b/sxc/10.0/k8s-commerce-xc1/init/solr-init.yaml
@@ -0,0 +1,25 @@
+apiVersion: batch/v1
+kind: Job
+metadata:
+ name: solr-init
+spec:
+ template:
+ spec:
+ imagePullSecrets:
+ - name: sitecore-docker-registry
+ containers:
+ - name: solr-init
+ image: {registry}/{sxc-project}/sitecore-xc1-solr-init:{commerce-version}
+ env:
+ - name: SITECORE_SOLR_CONNECTION_STRING
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-solr
+ key: sitecore-solr-connection-string.txt
+ - name: COMMERCE_SOLR_CONNECTION_STRING
+ valueFrom:
+ secretKeyRef:
+ name: commerce-solr
+ key: commerce-solr-connection-string.txt
+ restartPolicy: Never
+ backoffLimit: 5
diff --git a/sxc/10.0/k8s-commerce-xc1/prc.yaml b/sxc/10.0/k8s-commerce-xc1/prc.yaml
new file mode 100644
index 0000000..898a729
--- /dev/null
+++ b/sxc/10.0/k8s-commerce-xc1/prc.yaml
@@ -0,0 +1,156 @@
+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: mcr.microsoft.com/powershell:lts-nanoserver-1809
+ command: ["pwsh", "-Command", "do { Start-Sleep -Seconds 3 } until ($(try {(iwr http://xdbcollection/healthz/ready).StatusCode -eq 200} catch { $false }));"]
+ containers:
+ - name: sitecore-xp1-prc
+ image: {registry}/{project}/sitecore-xp1-prc:{version}
+ 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: Sitecore_ConnectionStrings_Core
+ value: Data Source=$(Database_Server);Initial Catalog=Sitecore.Core;User ID=$(Core_Database_Username);Password=$(Core_Database_Password);
+ - name: Sitecore_ConnectionStrings_Security
+ value: Data Source=$(Database_Server);Initial Catalog=Sitecore.Core;User ID=$(Core_Database_Username);Password=$(Core_Database_Password);
+ - name: Sitecore_ConnectionStrings_Master
+ value: Data Source=$(Database_Server);Initial Catalog=Sitecore.Master;User ID=$(Master_Database_Username);Password=$(Master_Database_Password);
+ - name: Sitecore_ConnectionStrings_Xdb.Processing.Pools
+ value: Data Source=$(Database_Server);Initial Catalog=Sitecore.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=Sitecore.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=Sitecore.Processing.tasks;User ID=$(Processing_Tasks_Database_Username);Password=$(Processing_Tasks_Database_Password);
+ - name: Sitecore_ConnectionStrings_Reporting
+ value: Data Source=$(Database_Server);Initial Catalog=Sitecore.Reporting;User ID=$(Reporting_Database_Username);Password=$(Reporting_Database_Password);
+ - name: Sitecore_ConnectionStrings_XConnect.Collection
+ value: http://xdbcollection
+ 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
+ imagePullSecrets:
+ - name: sitecore-docker-registry
\ No newline at end of file
diff --git a/sxc/10.0/k8s-commerce-xc1/rep.yaml b/sxc/10.0/k8s-commerce-xc1/rep.yaml
new file mode 100644
index 0000000..da24b36
--- /dev/null
+++ b/sxc/10.0/k8s-commerce-xc1/rep.yaml
@@ -0,0 +1,114 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: rep
+spec:
+ selector:
+ app: rep
+ ports:
+ - protocol: TCP
+ port: 80
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: rep
+ labels:
+ app: rep
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: rep
+ template:
+ metadata:
+ labels:
+ app: rep
+ spec:
+ nodeSelector:
+ kubernetes.io/os: windows
+ containers:
+ - name: sitecore-xc1-rep
+ image: {registry}/{sxc-project}/sitecore-xc1-rep:{commerce-version}
+ 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: Sitecore_ConnectionStrings_Reporting.ApiKey
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-reporting
+ key: sitecore-reportingapikey.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: Sitecore_ConnectionStrings_Core
+ value: Data Source=$(Database_Server);Initial Catalog=Sitecore.Core;User ID=$(Core_Database_Username);Password=$(Core_Database_Password);
+ - name: Sitecore_ConnectionStrings_Security
+ value: Data Source=$(Database_Server);Initial Catalog=Sitecore.Core;User ID=$(Core_Database_Username);Password=$(Core_Database_Password);
+ - name: Sitecore_ConnectionStrings_Master
+ value: Data Source=$(Database_Server);Initial Catalog=Sitecore.Master;User ID=$(Master_Database_Username);Password=$(Master_Database_Password);
+ - name: Sitecore_ConnectionStrings_Reporting
+ value: Data Source=$(Database_Server);Initial Catalog=Sitecore.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
+ imagePullSecrets:
+ - name: sitecore-docker-registry
\ No newline at end of file
diff --git a/sxc/10.0/k8s-commerce-xc1/secrets/kustomization.yaml b/sxc/10.0/k8s-commerce-xc1/secrets/kustomization.yaml
new file mode 100644
index 0000000..bdb2b36
--- /dev/null
+++ b/sxc/10.0/k8s-commerce-xc1/secrets/kustomization.yaml
@@ -0,0 +1,127 @@
+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
+- 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-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
+- name: sitecore-solr-xdb
+ files:
+ - xp/sitecore-solr-connection-string-xdb.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-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
+- 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-ops-tls
+ files:
+ - tls/global-ops/tls.key
+ - tls/global-ops/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.0/k8s-commerce-xc1/secrets/tls/global-authoring/tls.crt b/sxc/10.0/k8s-commerce-xc1/secrets/tls/global-authoring/tls.crt
new file mode 100644
index 0000000..183e191
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/tls/global-authoring/tls.key b/sxc/10.0/k8s-commerce-xc1/secrets/tls/global-authoring/tls.key
new file mode 100644
index 0000000..4754814
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/tls/global-authority/root.crt b/sxc/10.0/k8s-commerce-xc1/secrets/tls/global-authority/root.crt
new file mode 100644
index 0000000..d134e6e
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/tls/global-authority/root.key b/sxc/10.0/k8s-commerce-xc1/secrets/tls/global-authority/root.key
new file mode 100644
index 0000000..2ab6fe5
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/tls/global-bizfx/tls.crt b/sxc/10.0/k8s-commerce-xc1/secrets/tls/global-bizfx/tls.crt
new file mode 100644
index 0000000..1de2e70
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/tls/global-bizfx/tls.key b/sxc/10.0/k8s-commerce-xc1/secrets/tls/global-bizfx/tls.key
new file mode 100644
index 0000000..9e15457
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/tls/global-cd/tls.crt b/sxc/10.0/k8s-commerce-xc1/secrets/tls/global-cd/tls.crt
new file mode 100644
index 0000000..2386fea
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/tls/global-cd/tls.key b/sxc/10.0/k8s-commerce-xc1/secrets/tls/global-cd/tls.key
new file mode 100644
index 0000000..eabe58c
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/tls/global-cm/tls.crt b/sxc/10.0/k8s-commerce-xc1/secrets/tls/global-cm/tls.crt
new file mode 100644
index 0000000..730006f
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/tls/global-cm/tls.key b/sxc/10.0/k8s-commerce-xc1/secrets/tls/global-cm/tls.key
new file mode 100644
index 0000000..33a542b
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/tls/global-id/tls.crt b/sxc/10.0/k8s-commerce-xc1/secrets/tls/global-id/tls.crt
new file mode 100644
index 0000000..8df3dd0
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/tls/global-id/tls.key b/sxc/10.0/k8s-commerce-xc1/secrets/tls/global-id/tls.key
new file mode 100644
index 0000000..22427ed
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/tls/global-minions/tls.crt b/sxc/10.0/k8s-commerce-xc1/secrets/tls/global-minions/tls.crt
new file mode 100644
index 0000000..054b959
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/tls/global-minions/tls.key b/sxc/10.0/k8s-commerce-xc1/secrets/tls/global-minions/tls.key
new file mode 100644
index 0000000..7d164f1
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/tls/global-ops/tls.crt b/sxc/10.0/k8s-commerce-xc1/secrets/tls/global-ops/tls.crt
new file mode 100644
index 0000000..feecd9d
--- /dev/null
+++ b/sxc/10.0/k8s-commerce-xc1/secrets/tls/global-ops/tls.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDATCCAemgAwIBAgIUV55kUKrxUoY/+zSh/785YT7KybkwDQYJKoZIhvcNAQEL
+BQAwJTEjMCEGA1UEAwwaQ29tbWVyY2UgQ29udGFpbmVyIFJvb3QgQ0EwHhcNMjAw
+NTI1MTkyNzI5WhcNMzAwNTIzMTkyNzI5WjAZMRcwFQYDVQQDDA5vcHMuZ2xvYmFs
+aG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK0bKwo6uyL8msgO
+8r4F4Jx28MIC5MDpE8TeVFy0l5TmnrbDherF6L2akzdmpVYfidPTrw1Ctmcnn6eP
+PlHaLZjUyEXcaJb/CITpq2eji/vcCeAN2eFDlamyx76sIuKlCpdozkn+mAojkF81
+96bBu+uv52gnvz7ibwdeot62hKdveRzWr4jXKZf9g3fgArtYNmAXf/t2S5Kdi0Ei
+J8D7XooXaNLhtgXRpfCbTfRXVfTqbvAPXOkLfzqCQrgNQJlBrG3mTLQ061UfhduT
+NpKTh9PohsVQpzqUYbGLaalja1i5OHqRm9deRQvPXv1KMNMaOMmhZgU355A+Wjxj
+ix6akjECAwEAAaM1MDMwCQYDVR0TBAIwADALBgNVHQ8EBAMCBeAwGQYDVR0RBBIw
+EIIOb3BzLmdsb2JhbGhvc3QwDQYJKoZIhvcNAQELBQADggEBABSjyNKCxE3ttcld
+Pe5ISDvD39Vv+8Kqy9uDONHza2ZNIgIGom/8+uaREYzy6vfhdBgCk3KGmtAKENE4
+zRy0YhaXkbtXZtBCeaJbKt9+qSgeFXSeRHqp7KC2OWPKqBbsSyYkVzPvwA1WFNue
+/J2WVKhEzAeM9mu/Ls+EuoKAZNWDjwyrV5bwBMydHWsJzYAzmiJSp6bwyIDVBZVO
+l68R805QTEK4iz7u3nXnSGO4W+80k0n2nXE/ZfXmxDq+s6NgFEoNx+pI1Kq6ICT4
+1DY6u+1QLnb2fo+dxoQ7JBItHD8pLQDn2NbVCAgaOoc9sKNX4ckMi8VXvwD6/Mud
+0FQGG0U=
+-----END CERTIFICATE-----
diff --git a/sxc/10.0/k8s-commerce-xc1/secrets/tls/global-ops/tls.key b/sxc/10.0/k8s-commerce-xc1/secrets/tls/global-ops/tls.key
new file mode 100644
index 0000000..d509a0a
--- /dev/null
+++ b/sxc/10.0/k8s-commerce-xc1/secrets/tls/global-ops/tls.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEArRsrCjq7IvyayA7yvgXgnHbwwgLkwOkTxN5UXLSXlOaetsOF
+6sXovZqTN2alVh+J09OvDUK2Zyefp48+UdotmNTIRdxolv8IhOmrZ6OL+9wJ4A3Z
+4UOVqbLHvqwi4qUKl2jOSf6YCiOQXzX3psG766/naCe/PuJvB16i3raEp295HNav
+iNcpl/2Dd+ACu1g2YBd/+3ZLkp2LQSInwPteihdo0uG2BdGl8JtN9FdV9Opu8A9c
+6Qt/OoJCuA1AmUGsbeZMtDTrVR+F25M2kpOH0+iGxVCnOpRhsYtpqWNrWLk4epGb
+115FC89e/Uow0xo4yaFmBTfnkD5aPGOLHpqSMQIDAQABAoIBAQCeoavyZtnA+Q16
+UcB/BHHN0G1WzUIFylGUck2K2u+hwykkwM6C07QxtGo+NbFD2Aj89hqPo1f19ein
+q2vnpHFugWe6JX4vCS0sZ9nsUoJgXkcqbGcCuGV5Kl1DTQl2+tlW4PNR+Z4ohGiz
+54e36Aemtv7vgqUOIoCulznXsBimOc2/EV8ZgNPCK0B+IFpECQdjSdzcKfkUpXDq
+GXoHnBOGtvhvkLs2FlBitwuEz9upcoqGCqgxDMtwYrjkIcN+52g+1c6XmS7DoQhj
+kp+c/kfw5gpM0GVj5xBRZR/jrJputBfYVoNRnkkJS5nGpMVUupNgS/klxSYsP9+F
+f57uByvVAoGBAN3XxynDmpo9MNjtUAIrNZQ9Ko2fgp6fWlbnKUTqVx5R7GNYNx/9
+zYGFSIQ0NqKr2iTW52/R6qlZPWKrWWftIWDHupMhXUD4UQ3XLrfUW7okrgDCXYG+
+JXj/c/ej6GSe8y78kyZ4TVz5ZydvVeISgteiOlFIDBcRvkkciryBVE7TAoGBAMfC
+Xkg+jzpiOZPWQju8Kre87tAn5Kp2ZlN5izMqxtU4VzhHXFwFqk0jz9gARAbh7tlu
+OFCdfGuDnDGYF3Gq6n37Jm3MshWu6N8TfZ4/6sYjjjXpzk/x2W9iRsWjRIywnYBj
+M6/vVO00tKZSY/RGsHxiUa5HjkXJcO5qpY5J5+BrAoGAOGd/jP/d1C+QtucHu7Vu
+xwUSR7XxyRDtMEFP/eSzR9M+jjfEtE6crLzNpkd8SLn3GfzGFWlDB9HXyLmWXtUs
+8mV166jFBBreyO0YRMcql1ZyI2FH0xAciPoyaxlyofrEDANOCq71xJjpAF7PcE6S
+k+78cuQlpsvtHLu0Dp+3Zt8CgYBdOJ+3JzrADEbCbyLJra5hwJHSIkvcIRTvr7D+
+V+AicQCDCwpXB23KQgQk0Trt21ITthQhytzdb7XcjxWhvhlgYWw1oWkaJV4XfIkK
+6NkvTjh3gHz/YeYOzNYqNV8wKNvXpnPgjtgbOpVzaM+sl7CU220y38HNX4yMNsi7
+9lF3sQKBgH8eo8R8yWMzzhppDyTQPBfSufNDWQa9kZSubZVIu0Z6HqtIwfR8s1ZY
+porgj1x5HD0S1QpK053D0zYXopEwu/t+nEw65LatIELvOLD8xXHpi6W5vO3S/eBl
+eo4tPemyE4TePBSRkUHTFiZG4RazFUOcdy/oYaVmOsRp7sNytp/W
+-----END RSA PRIVATE KEY-----
diff --git a/sxc/10.0/k8s-commerce-xc1/secrets/tls/global-shops/tls.crt b/sxc/10.0/k8s-commerce-xc1/secrets/tls/global-shops/tls.crt
new file mode 100644
index 0000000..f44dd22
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/tls/global-shops/tls.key b/sxc/10.0/k8s-commerce-xc1/secrets/tls/global-shops/tls.key
new file mode 100644
index 0000000..3f9606c
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/xc/commerce-bizfx-currency.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xc/commerce-bizfx-currency.txt
new file mode 100644
index 0000000..11d6bf5
--- /dev/null
+++ b/sxc/10.0/k8s-commerce-xc1/secrets/xc/commerce-bizfx-currency.txt
@@ -0,0 +1 @@
+USD
\ No newline at end of file
diff --git a/sxc/10.0/k8s-commerce-xc1/secrets/xc/commerce-bizfx-language.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xc/commerce-bizfx-language.txt
new file mode 100644
index 0000000..2c4c454
--- /dev/null
+++ b/sxc/10.0/k8s-commerce-xc1/secrets/xc/commerce-bizfx-language.txt
@@ -0,0 +1 @@
+en
\ No newline at end of file
diff --git a/sxc/10.0/k8s-commerce-xc1/secrets/xc/commerce-bizfx-shopname.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xc/commerce-bizfx-shopname.txt
new file mode 100644
index 0000000..fd834bf
--- /dev/null
+++ b/sxc/10.0/k8s-commerce-xc1/secrets/xc/commerce-bizfx-shopname.txt
@@ -0,0 +1 @@
+CommerceEngineDefaultStorefront
\ No newline at end of file
diff --git a/sxc/10.0/k8s-commerce-xc1/secrets/xc/commerce-connect-clientid.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xc/commerce-connect-clientid.txt
new file mode 100644
index 0000000..2187f07
--- /dev/null
+++ b/sxc/10.0/k8s-commerce-xc1/secrets/xc/commerce-connect-clientid.txt
@@ -0,0 +1 @@
+CommerceEngineConnect
\ No newline at end of file
diff --git a/sxc/10.0/k8s-commerce-xc1/secrets/xc/commerce-connect-clientsecret.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xc/commerce-connect-clientsecret.txt
new file mode 100644
index 0000000..e69de29
diff --git a/sxc/10.0/k8s-commerce-xc1/secrets/xc/commerce-connect-redis-connection-string.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xc/commerce-connect-redis-connection-string.txt
new file mode 100644
index 0000000..108c777
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/xc/commerce-engine-braintreeenvironment.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xc/commerce-engine-braintreeenvironment.txt
new file mode 100644
index 0000000..e69de29
diff --git a/sxc/10.0/k8s-commerce-xc1/secrets/xc/commerce-engine-braintreemerchantid.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xc/commerce-engine-braintreemerchantid.txt
new file mode 100644
index 0000000..e69de29
diff --git a/sxc/10.0/k8s-commerce-xc1/secrets/xc/commerce-engine-braintreeprivatekey.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xc/commerce-engine-braintreeprivatekey.txt
new file mode 100644
index 0000000..e69de29
diff --git a/sxc/10.0/k8s-commerce-xc1/secrets/xc/commerce-engine-braintreepublickey.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xc/commerce-engine-braintreepublickey.txt
new file mode 100644
index 0000000..e69de29
diff --git a/sxc/10.0/k8s-commerce-xc1/secrets/xc/commerce-redis-connection-string.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xc/commerce-redis-connection-string.txt
new file mode 100644
index 0000000..15a10e5
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/xc/commerce-solr-connection-string.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xc/commerce-solr-connection-string.txt
new file mode 100644
index 0000000..0f57f1c
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/xp/sitecore-adminpassword.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-adminpassword.txt
new file mode 100644
index 0000000..1cbe6f4
--- /dev/null
+++ b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-adminpassword.txt
@@ -0,0 +1 @@
+Password12345
\ No newline at end of file
diff --git a/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-collection-shardmapmanager-database-password.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-collection-shardmapmanager-database-password.txt
new file mode 100644
index 0000000..1cbe6f4
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/xp/sitecore-collection-shardmapmanager-database-username.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-collection-shardmapmanager-database-username.txt
new file mode 100644
index 0000000..44946c8
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/xp/sitecore-core-database-password.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-core-database-password.txt
new file mode 100644
index 0000000..1cbe6f4
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/xp/sitecore-core-database-username.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-core-database-username.txt
new file mode 100644
index 0000000..1a01ffc
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/xp/sitecore-database-elastic-pool-name.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-database-elastic-pool-name.txt
new file mode 100644
index 0000000..e69de29
diff --git a/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-databasepassword.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-databasepassword.txt
new file mode 100644
index 0000000..1cbe6f4
--- /dev/null
+++ b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-databasepassword.txt
@@ -0,0 +1 @@
+Password12345
\ No newline at end of file
diff --git a/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-databaseservername.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-databaseservername.txt
new file mode 100644
index 0000000..a5faf70
--- /dev/null
+++ b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-databaseservername.txt
@@ -0,0 +1 @@
+mssql
\ No newline at end of file
diff --git a/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-databaseusername.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-databaseusername.txt
new file mode 100644
index 0000000..0107e44
--- /dev/null
+++ b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-databaseusername.txt
@@ -0,0 +1 @@
+sa
\ No newline at end of file
diff --git a/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-exm-master-database-password.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-exm-master-database-password.txt
new file mode 100644
index 0000000..1cbe6f4
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/xp/sitecore-exm-master-database-username.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-exm-master-database-username.txt
new file mode 100644
index 0000000..6b4a10e
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/xp/sitecore-forms-database-password.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-forms-database-password.txt
new file mode 100644
index 0000000..1cbe6f4
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/xp/sitecore-forms-database-username.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-forms-database-username.txt
new file mode 100644
index 0000000..2af6196
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/xp/sitecore-identitycertificate.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-identitycertificate.txt
new file mode 100644
index 0000000..e69de29
diff --git a/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-identitycertificatepassword.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-identitycertificatepassword.txt
new file mode 100644
index 0000000..e69de29
diff --git a/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-identitysecret.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-identitysecret.txt
new file mode 100644
index 0000000..e69de29
diff --git a/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-license.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-license.txt
new file mode 100644
index 0000000..e69de29
diff --git a/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-marketing-automation-database-password.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-marketing-automation-database-password.txt
new file mode 100644
index 0000000..1cbe6f4
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/xp/sitecore-marketing-automation-database-username.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-marketing-automation-database-username.txt
new file mode 100644
index 0000000..0d2f9dc
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/xp/sitecore-master-database-password.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-master-database-password.txt
new file mode 100644
index 0000000..1cbe6f4
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/xp/sitecore-master-database-username.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-master-database-username.txt
new file mode 100644
index 0000000..92db714
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/xp/sitecore-messaging-database-password.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-messaging-database-password.txt
new file mode 100644
index 0000000..1cbe6f4
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/xp/sitecore-messaging-database-username.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-messaging-database-username.txt
new file mode 100644
index 0000000..627db56
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/xp/sitecore-processing-engine-storage-database-password.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-processing-engine-storage-database-password.txt
new file mode 100644
index 0000000..1cbe6f4
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/xp/sitecore-processing-engine-storage-database-username.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-processing-engine-storage-database-username.txt
new file mode 100644
index 0000000..0447fe0
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/xp/sitecore-processing-engine-tasks-database-password.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-processing-engine-tasks-database-password.txt
new file mode 100644
index 0000000..1cbe6f4
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/xp/sitecore-processing-engine-tasks-database-username.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-processing-engine-tasks-database-username.txt
new file mode 100644
index 0000000..09ab54b
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/xp/sitecore-processing-pools-database-password.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-processing-pools-database-password.txt
new file mode 100644
index 0000000..1cbe6f4
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/xp/sitecore-processing-pools-database-username.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-processing-pools-database-username.txt
new file mode 100644
index 0000000..afa6719
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/xp/sitecore-processing-tasks-database-password.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-processing-tasks-database-password.txt
new file mode 100644
index 0000000..1cbe6f4
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/xp/sitecore-processing-tasks-database-username.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-processing-tasks-database-username.txt
new file mode 100644
index 0000000..8731b1d
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/xp/sitecore-redis-connection-string.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-redis-connection-string.txt
new file mode 100644
index 0000000..15a10e5
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/xp/sitecore-reference-data-database-password.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-reference-data-database-password.txt
new file mode 100644
index 0000000..1cbe6f4
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/xp/sitecore-reference-data-database-username.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-reference-data-database-username.txt
new file mode 100644
index 0000000..eec4367
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/xp/sitecore-reporting-database-password.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-reporting-database-password.txt
new file mode 100644
index 0000000..1cbe6f4
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/xp/sitecore-reporting-database-username.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-reporting-database-username.txt
new file mode 100644
index 0000000..68515d5
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/xp/sitecore-reportingapikey.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-reportingapikey.txt
new file mode 100644
index 0000000..55c80f2
--- /dev/null
+++ b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-reportingapikey.txt
@@ -0,0 +1 @@
+00112233445566778899AABBCCDDEEFF
\ No newline at end of file
diff --git a/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-solr-connection-string-xdb.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-solr-connection-string-xdb.txt
new file mode 100644
index 0000000..eea97d7
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/xp/sitecore-solr-connection-string.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-solr-connection-string.txt
new file mode 100644
index 0000000..223d335
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/xp/sitecore-telerikencryptionkey.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-telerikencryptionkey.txt
new file mode 100644
index 0000000..e69de29
diff --git a/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-web-database-password.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-web-database-password.txt
new file mode 100644
index 0000000..1cbe6f4
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/secrets/xp/sitecore-web-database-username.txt b/sxc/10.0/k8s-commerce-xc1/secrets/xp/sitecore-web-database-username.txt
new file mode 100644
index 0000000..134ed9d
--- /dev/null
+++ b/sxc/10.0/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.0/k8s-commerce-xc1/storage/platform-config-storage.yaml b/sxc/10.0/k8s-commerce-xc1/storage/platform-config-storage.yaml
new file mode 100644
index 0000000..9ab8d5a
--- /dev/null
+++ b/sxc/10.0/k8s-commerce-xc1/storage/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.0/k8s-commerce-xc1/xdbautomation.yaml b/sxc/10.0/k8s-commerce-xc1/xdbautomation.yaml
new file mode 100644
index 0000000..3689841
--- /dev/null
+++ b/sxc/10.0/k8s-commerce-xc1/xdbautomation.yaml
@@ -0,0 +1,114 @@
+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: mcr.microsoft.com/powershell:lts-nanoserver-1809
+ command: ["pwsh", "-Command", "do { Start-Sleep -Seconds 3 } until ($(try {(iwr http://xdbcollection/healthz/ready).StatusCode -eq 200} catch { $false }));"]
+ - name: wait-xdbsearch
+ image: mcr.microsoft.com/powershell:lts-nanoserver-1809
+ 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: {registry}/{sxc-project}/sitecore-xc1-xdbautomation:{commerce-version}
+ 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: Sitecore_ConnectionStrings_Messaging
+ value: Data Source=$(Database_Server);Initial Catalog=Sitecore.Messaging;User ID=$(Messaging_Database_Username);Password=$(Messaging_Database_Password);
+ - name: Sitecore_ConnectionStrings_Xdb.Marketingautomation
+ value: Data Source=$(Database_Server);Initial Catalog=Sitecore.Marketingautomation;User ID=$(Marketing_Automation_Database_Username);Password=$(Marketing_Automation_Database_Password);
+ - name: Sitecore_ConnectionStrings_Xdb.Referencedata
+ value: Data Source=$(Database_Server);Initial Catalog=Sitecore.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
+ imagePullSecrets:
+ - name: sitecore-docker-registry
\ No newline at end of file
diff --git a/sxc/10.0/k8s-commerce-xc1/xdbautomationrpt.yaml b/sxc/10.0/k8s-commerce-xc1/xdbautomationrpt.yaml
new file mode 100644
index 0000000..8f21e32
--- /dev/null
+++ b/sxc/10.0/k8s-commerce-xc1/xdbautomationrpt.yaml
@@ -0,0 +1,91 @@
+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: {registry}/{project}/sitecore-xp1-xdbautomationrpt:{version}
+ 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: Sitecore_ConnectionStrings_Xdb.Marketingautomation
+ value: Data Source=$(Database_Server);Initial Catalog=Sitecore.Marketingautomation;User ID=$(Marketing_Automation_Database_Username);Password=$(Marketing_Automation_Database_Password);
+ - name: Sitecore_ConnectionStrings_Xdb.Referencedata
+ value: Data Source=$(Database_Server);Initial Catalog=Sitecore.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
+ imagePullSecrets:
+ - name: sitecore-docker-registry
\ No newline at end of file
diff --git a/sxc/10.0/k8s-commerce-xc1/xdbautomationworker.yaml b/sxc/10.0/k8s-commerce-xc1/xdbautomationworker.yaml
new file mode 100644
index 0000000..7d80f22
--- /dev/null
+++ b/sxc/10.0/k8s-commerce-xc1/xdbautomationworker.yaml
@@ -0,0 +1,108 @@
+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: mcr.microsoft.com/powershell:lts-nanoserver-1809
+ command: ["pwsh", "-Command", "do { Start-Sleep -Seconds 3 } until ($(try {(iwr http://xdbcollection/healthz/ready).StatusCode -eq 200} catch { $false }));"]
+ - name: wait-xdbsearch
+ image: mcr.microsoft.com/powershell:lts-nanoserver-1809
+ 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: {registry}/{sxc-project}/sitecore-xc1-xdbautomationworker:{commerce-version}
+ 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: 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=Sitecore.Marketingautomation;User ID=$(Marketing_Automation_Database_Username);Password=$(Marketing_Automation_Database_Password);
+ - name: Sitecore_ConnectionStrings_Xdb.Referencedata
+ value: Data Source=$(Database_Server);Initial Catalog=Sitecore.Referencedata;User ID=$(Reference_Data_Database_Username);Password=$(Reference_Data_Database_Password);
+ - name: Sitecore_ConnectionStrings_Messaging
+ value: Data Source=$(Database_Server);Initial Catalog=Sitecore.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
+ imagePullSecrets:
+ - name: sitecore-docker-registry
\ No newline at end of file
diff --git a/sxc/10.0/k8s-commerce-xc1/xdbcollection.yaml b/sxc/10.0/k8s-commerce-xc1/xdbcollection.yaml
new file mode 100644
index 0000000..6ef4f1d
--- /dev/null
+++ b/sxc/10.0/k8s-commerce-xc1/xdbcollection.yaml
@@ -0,0 +1,115 @@
+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: {registry}/{sxc-project}/sitecore-xc1-xdbcollection:{commerce-version}
+ 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: Sitecore_License
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-license
+ key: sitecore-license.txt
+ - name: Sitecore_ConnectionStrings_Messaging
+ value: Data Source=$(Database_Server);Initial Catalog=Sitecore.Messaging;User ID=$(Messaging_Database_Username);Password=$(Messaging_Database_Password);
+ - name: Sitecore_ConnectionStrings_Xdb.Marketingautomation
+ value: Data Source=$(Database_Server);Initial Catalog=Sitecore.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=Sitecore.Processing.pools;User ID=$(Processing_Pools_Database_Username);Password=$(Processing_Pools_Database_Password);
+ - name: Sitecore_ConnectionStrings_Collection
+ value: Data Source=$(Database_Server);Initial Catalog=Sitecore.Xdb.Collection.ShardMapManager;User ID=$(Collection_ShardMapManager_Database_Username);Password=$(Collection_ShardMapManager_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
+ imagePullSecrets:
+ - name: sitecore-docker-registry
\ No newline at end of file
diff --git a/sxc/10.0/k8s-commerce-xc1/xdbrefdata.yaml b/sxc/10.0/k8s-commerce-xc1/xdbrefdata.yaml
new file mode 100644
index 0000000..c25d655
--- /dev/null
+++ b/sxc/10.0/k8s-commerce-xc1/xdbrefdata.yaml
@@ -0,0 +1,79 @@
+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: {registry}/{project}/sitecore-xp1-xdbrefdata:{version}
+ 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: Sitecore_ConnectionStrings_Xdb.Referencedata
+ value: Data Source=$(Database_Server);Initial Catalog=Sitecore.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
+ imagePullSecrets:
+ - name: sitecore-docker-registry
\ No newline at end of file
diff --git a/sxc/10.0/k8s-commerce-xc1/xdbsearch.yaml b/sxc/10.0/k8s-commerce-xc1/xdbsearch.yaml
new file mode 100644
index 0000000..1658370
--- /dev/null
+++ b/sxc/10.0/k8s-commerce-xc1/xdbsearch.yaml
@@ -0,0 +1,124 @@
+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: {registry}/{sxc-project}/sitecore-xc1-xdbsearch:{commerce-version}
+ 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: Sitecore_License
+ valueFrom:
+ secretKeyRef:
+ name: sitecore-license
+ key: sitecore-license.txt
+ - name: Sitecore_ConnectionStrings_Messaging
+ value: Data Source=$(Database_Server);Initial Catalog=Sitecore.Messaging;User ID=$(Messaging_Database_Username);Password=$(Messaging_Database_Password);
+ - name: Sitecore_ConnectionStrings_Xdb.Marketingautomation
+ value: Data Source=$(Database_Server);Initial Catalog=Sitecore.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=Sitecore.Processing.pools;User ID=$(Processing_Pools_Database_Username);Password=$(Processing_Pools_Database_Password);
+ - name: Sitecore_ConnectionStrings_Collection
+ value: Data Source=$(Database_Server);Initial Catalog=Sitecore.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__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
+ imagePullSecrets:
+ - name: sitecore-docker-registry
\ No newline at end of file
diff --git a/sxc/10.0/k8s-commerce-xc1/xdbsearchworker.yaml b/sxc/10.0/k8s-commerce-xc1/xdbsearchworker.yaml
new file mode 100644
index 0000000..c5716a5
--- /dev/null
+++ b/sxc/10.0/k8s-commerce-xc1/xdbsearchworker.yaml
@@ -0,0 +1,84 @@
+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: {registry}/{sxc-project}/sitecore-xc1-xdbsearchworker:{commerce-version}
+ 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: Sitecore_ConnectionStrings_Collection
+ value: Data Source=$(Database_Server);Initial Catalog=Sitecore.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
+ imagePullSecrets:
+ - name: sitecore-docker-registry
\ No newline at end of file
diff --git a/sxc/10.0/scripts/CleanContainerCache.ps1 b/sxc/10.0/scripts/CleanContainerCache.ps1
new file mode 100644
index 0000000..957c320
--- /dev/null
+++ b/sxc/10.0/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).Count -1)
+Write-Host "Count of cache directories:"(Get-ChildItem -path C:\ProgramData\docker\windowsfilter\ -force | measure).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).Count -1)
+Write-Host "Count of cache directories:"(Get-ChildItem -path C:\ProgramData\docker\windowsfilter\ -force | measure).Count
+Write-Host "Diskspace used:"
+docker system df
+Write-Host "============================================================="
diff --git a/sxc/10.0/scripts/ContainerBuild.ps1 b/sxc/10.0/scripts/ContainerBuild.ps1
new file mode 100644
index 0000000..ec9672e
--- /dev/null
+++ b/sxc/10.0/scripts/ContainerBuild.ps1
@@ -0,0 +1,50 @@
+[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
+ #xc1-cxa depends on content that is built in xc-common. So it cannot be 'pulled' from a registry
+ #when building the sample container images. Of course if you are using your own pre-build images then
+ #you would not need to manipulate the docker-compose.build.yml to force a tag of 'latest' from the images
+ if($workingDir.Contains("cxa")) {
+ Write-Host "Make a copy of the CXA build yaml for build time"
+ Copy-Item -Path '.\docker-compose.build.yml' -Destination '.\docker-compose.build.yml.bck' -Force -Verbose
+ Copy-Item -Path '.\commerce.build.yml' -Destination '.\docker-compose.build.yml' -Force -Verbose
+ }
+ '[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."
+ }
+
+ if($workingDir.Contains("cxa")) {
+ Write-Host "-------> Return CXA build yaml to release default"
+ Copy-Item -Path '.\docker-compose.build.yml.bck' -Destination '.\docker-compose.build.yml' -Force -Verbose
+ Remove-Item -Path '.\docker-compose.build.yml.bck' -Force -Verbose
+ }
+ Pop-Location
+ }
diff --git a/sxc/10.0/scripts/ContainerTag.ps1 b/sxc/10.0/scripts/ContainerTag.ps1
new file mode 100644
index 0000000..018d1d2
--- /dev/null
+++ b/sxc/10.0/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.0.0.60234.10194-pbi-422197-0035-10.0.17763.1282-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.0.0-ltsc2019 then this will only ever point to one
+ 'container'. If you tag another container image with 10.0.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.0.0.60234.10194-pbi-422197-0035-10.0.17763.1282-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.0/scripts/FakeLicenseFile.txt b/sxc/10.0/scripts/FakeLicenseFile.txt
new file mode 100644
index 0000000..3accd2e
--- /dev/null
+++ b/sxc/10.0/scripts/FakeLicenseFile.txt
@@ -0,0 +1 @@
+ThisIsAFakeLicense
\ No newline at end of file
diff --git a/sxc/10.0/scripts/PrepContainerBuild.ps1 b/sxc/10.0/scripts/PrepContainerBuild.ps1
new file mode 100644
index 0000000..2d0ec41
--- /dev/null
+++ b/sxc/10.0/scripts/PrepContainerBuild.ps1
@@ -0,0 +1,134 @@
+[cmdletbinding()]
+param(
+
+ [string]$jsonFile = (Join-Path '.' 'WDPMapping.json'),
+ [string]$releaseZipPath = '.'
+)
+<#
+.SYNOPSIS
+Uses Commerce Release artifacts to prepare the environment for building container images based on XP and XC container images.
+
+.DESCRIPTION
+Takes the Sitecore Commerce release zip artifacts and expands the contents in to the structure expected by the Sitecore XC container Docker files.
+
+.PARAMETER jsonFile
+Path to the WDPMapping.json file that maps the WDP file content needed build a specific container image.
+
+.PARAMETER releaseZipPath
+Path to the Sitecore XC release zip files downloaded from dev.sitecore.net. Both the Azure and WDP release files are required.
+
+.EXAMPLE
+PrepContainerbuild.ps1
+
+Expands the release zip files in to the respective container directories. Presumes the WDPMapping.json and release zip files are located
+in the same directory as this script.
+
+.EXAMPLE
+PrepContainerbuild.ps1 -jsonFile 'C:\src\Commerce.Containers' -releaseZipPath 'C:\src\Commerce.Containers\downloads'
+
+Expands the release zip files in to the respective container directories. The WDPMapping.json is located in C:\src\Commerce.Containers
+and release zip files are located in the C:\src\Commerce.Containers\downloads directory.
+#>
+
+#Check for the json file
+if (Test-Path("$jsonFile"))
+{
+ #Create the tmpDir
+ $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
+ }
+
+ #Find the release zip archives and expand them into the tmpDir
+ $releaseFound = 0
+ $releaseZips = Get-ChildItem -Path $releaseZipPath -Filter "Sitecore.Commerce.*.zip" -Recurse
+ foreach ($rZip in $releaseZips) {
+ if ($rZip.Name -match '(.*WDP\.\d\d\d\d.*|.*Azure\.\d\d\d\d.*)') {
+ Expand-Archive -Path $rZip.Fullname -DestinationPath $tmpDir -Force
+ $releaseFound += 1
+ }
+ }
+
+ if ($releaseFound -lt 2) {
+ Throw 'Missing one or more Sitecore XC release zip files.'
+ }
+
+ $json = Get-Content "$jsonFile" | ConvertFrom-Json
+ foreach ($j in $json) {
+ Write-Host "Processing" $j.DestinationFolder
+
+ if((!($j | Get-Member "ToCopyFolder")) -and (!($j | Get-Member "ToCopyFiles"))) {
+ Throw "There is no information on what content to copy to $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\..") $j.DestinationFolder
+ if (!(Test-Path $destinationFolder)){
+ New-Item -Path $destinationFolder -ItemType Directory | Out-Null
+ } else {
+ Remove-Item -Path $destinationFolder -Recurse -Force
+ New-Item -Path $destinationFolder -ItemType Directory | Out-Null
+ }
+
+ #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 $tmpDir -Filter $wFile -Recurse | Sort-Object | Select-Object -First 1
+ if (!$wdpFile) {
+ $wFile = $wdp + '*.zip'
+ $wdpFile = Get-ChildItem -Path $tmpDir -Filter $wFile -Recurse | Sort-Object | Select-Object -First 1
+ }
+
+ #WDP file found
+ if (Test-Path $wdpFile.FullName) {
+ $expandFolder = (Join-Path (Join-Path (Split-Path -Path $wdpfile.FullName -Parent) "$($wdpfile.BaseName)") "wdp")
+ Write-Host "Expanding" $wdpfile.FullName "to" $expandFolder -ForegroundColor Yellow
+ Expand-Archive -Path $wdpfile.FullName -DestinationPath $expandFolder -Force
+
+ #Determine what to copy where either a directory recursively or a specific set of files
+ if($j | Get-Member "ToCopyFolder") {
+ Write-Host -Message ("Copying folder {0}\{1} to {2}" -f $expandFolder, $j.ToCopyFolder, $destinationFolder) -ForegroundColor Yellow
+ Copy-Item -Path (Join-Path (Join-Path $expandFolder $j.ToCopyFolder) "*") -Destination $destinationFolder -Recurse -Force
+ }
+
+ if($j | Get-Member "ToCopyFiles"){
+ Write-Host -Message ("Copying files {0}\{1} to {2}" -f $expandFolder, $j.ToCopyFiles, $destinationFolder) -ForegroundColor Yellow
+ $files = Get-ChildItem -Path (Join-Path $expandFolder "/*") -Filter $j.ToCopyFiles -Recurse
+
+ $nameMappings = ConvertTo-Json @()
+ if($j | Get-Member "NameMappings"){
+ $nameMappings = $j.NameMappings
+ }
+
+ foreach ($file in $files) {
+ $fileName = $($file.BaseName)
+ $nameMapping = $nameMappings | Where-Object { $_.Name -eq $($file.BaseName) }
+ if($nameMapping -ne $null -and $nameMapping.NewName -ne ""){
+ $fileName = $($nameMapping.NewName)
+ }
+
+ $fileNameExtension = $($fileName) + $($file.Extension)
+ $fileDFolder = (Join-Path $destinationFolder $wdp)
+ if(!(Test-Path $fileDFolder)){
+ New-Item -Path $fileDFolder -ItemType Directory
+ }
+
+ $fileDPath = Join-Path $fileDFolder $fileNameExtension
+ Write-Host -Message ("Copying file {0} to {1}" -f $file, $fileDPath)
+ Copy-Item -Path (Join-Path $expandFolder $file) -Destination $fileDPath -Force
+ }
+ }
+ } else {
+ throw "No Matching WDP file found: $wdp"
+ }
+ }
+ }
+} else {
+ throw "No JSON file"
+}
+
diff --git a/sxc/10.0/scripts/ScriptSupport.psm1 b/sxc/10.0/scripts/ScriptSupport.psm1
new file mode 100644
index 0000000..ebec106
--- /dev/null
+++ b/sxc/10.0/scripts/ScriptSupport.psm1
@@ -0,0 +1,68 @@
+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())
+}
+
+Function GenerateRandomString {
+ param(
+ [int] $length,
+ [switch] $disallowSpecialCharacters
+ )
+
+ $chars = @()
+ $chars += ('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z')
+ $chars += ('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z')
+ $chars += ('1', '2', '3', '4', '5', '6', '7', '8', '9', '0')
+
+ if (-not $disallowSpecialCharacters) {
+ $chars += ('~', '!', '@', '#', '$', '%', '^', '&', '*', '_', '-', '+', '=', [char]0x60, '|', '\', '(', ')', '{', '}', '[', ']', ':', ';', '<', '>', '.', '?', '/')
+ }
+
+ $generatedString = ""
+
+ for ($i = 1; $i -le $length; $i++) {
+ $generatedString += Get-Random $chars
+ }
+
+ return $generatedString
+}
+
+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
+ }
+ }
+}
diff --git a/sxc/10.0/scripts/UpdateEnvCompose.ps1 b/sxc/10.0/scripts/UpdateEnvCompose.ps1
new file mode 100644
index 0000000..0e18a53
--- /dev/null
+++ b/sxc/10.0/scripts/UpdateEnvCompose.ps1
@@ -0,0 +1,133 @@
+[cmdletbinding()]
+param(
+ [string] $envRootPath = (Join-Path $PWD ".."),
+ [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]$xcIdSecret,
+ [Parameter(Mandatory)]
+ [string]$idPassword,
+ [Parameter(Mandatory)]
+ [string]$reportingApiKey,
+ [ValidateSet("default", "process", "hyperv")]
+ [string]$isolation = "default"
+)
+<#
+.SYNOPSIS
+Script to facilitate the updating of the .env files for use in a docker-compose up and docker-compose build.
+
+.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 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 xcIdSecret
+[Parameter(Mandatory)]
+The client ID assigned to Commerce Engine Connect for Sitecore Identity. This ID is used to identify the Commerce Engine Connect with Commerce Engine.
+
+.PARAMETER idPassword
+[Parameter(Mandatory)]
+Password required to open the Identity Server certificate.
+
+.PARAMETER reportingApiKey
+[Parameter(Mandatory)]
+Symetric key used to access the Sitecore XDB Reporting Web API. Length: 64-128 characters
+
+.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 will force hyperv isolation. To improve performance it is recommened to use "process" as isolation method for Windows 10 as default is hyperv.
+
+.EXAMPLE
+PS> UpdateEnvCompose.ps1 -envRootPath (Join-Path $PWD "..") `
+ -licenseFile "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" `
+ -idPassword "Your Sitecore Identity password" `
+ -xcIdSecret "Your XC Connect Client Secret" `
+ -reportingApiKey "Your Sitecore Reporting API key"
+#>
+
+Import-Module (Join-Path $PSScriptRoot "ScriptSupport") -DisableNameChecking -Global
+
+$license = ConvertToCompressedBase64String -Path $licenseFilePath
+
+#Find all the .env files and updated them
+Get-ChildItem -Path $envRootPath -Include '*.env' -Recurse | `
+ForEach-Object {
+ Write-Host "Updating [$_] file ..."
+
+ $envContent = Get-Content -Path $_
+ $envContent = $envContent -replace "SITECORE_LICENSE=.*", "SITECORE_LICENSE=$license"
+ $envContent = $envContent -replace "SITECORE_IDSECRET=.*", "SITECORE_IDSECRET=$idSecret"
+ $envContent = $envContent -replace "SITECORE_ID_CERTIFICATE=.*", "SITECORE_ID_CERTIFICATE=$idCert"
+ $envContent = $envContent -replace "SITECORE_ID_CERTIFICATE_PASSWORD=.*", "SITECORE_ID_CERTIFICATE_PASSWORD=$idPassword"
+ $envContent = $envContent -replace "TELERIK_ENCRYPTION_KEY=.*", "TELERIK_ENCRYPTION_KEY=$telerikKey"
+ $envContent = $envContent -replace "REPORTING_API_KEY=.*", "REPORTING_API_KEY=$reportingApiKey"
+ $envContent = $envContent -replace "XC_IDENTITY_COMMERCEENGINECONNECTCLIENT_CLIENTSECRET1=.*", "XC_IDENTITY_COMMERCEENGINECONNECTCLIENT_CLIENTSECRET1=$xcIdSecret"
+ $envContent = $envContent -replace "XC_ENGINE_BRAINTREEENVIRONMENT=.*", "XC_ENGINE_BRAINTREEENVIRONMENT=$braintreeEnvironment"
+ $envContent = $envContent -replace "XC_ENGINE_BRAINTREEMERCHANTID=.*", "XC_ENGINE_BRAINTREEMERCHANTID=$braintreeMerchantId"
+ $envContent = $envContent -replace "XC_ENGINE_BRAINTREEPUBLICKEY=.*", "XC_ENGINE_BRAINTREEPUBLICKEY=$braintreePublicKey"
+ $envContent = $envContent -replace "XC_ENGINE_BRAINTREEPRIVATEKEY=.*", "XC_ENGINE_BRAINTREEPRIVATEKEY=$braintreePrivateKey"
+
+ $envContent = $envContent -replace "ISOLATION=.*", "ISOLATION=$isolation"
+ $envContent = $envContent -replace "TRAEFIK_ISOLATION=.*", "TRAEFIK_ISOLATION=default" # There is no traefik that supports proces isolation in Windows 10 so important this stays as default and isn't overwritten by isolation above
+
+
+ Set-Content -Path $_ -Value $envContent -Force
+
+ Write-Host ".env file [$_] has been updated"
+}
+
+#Creates volumes folders in the host
+Confirm-VolumeFoldersExist -Path "C:\containers"
diff --git a/sxc/10.0/scripts/UpdateEnvTag.ps1 b/sxc/10.0/scripts/UpdateEnvTag.ps1
new file mode 100644
index 0000000..606eeb1
--- /dev/null
+++ b/sxc/10.0/scripts/UpdateEnvTag.ps1
@@ -0,0 +1,96 @@
+[cmdletbinding()]
+param(
+ [string]$jsonFile = (Join-Path '.' 'configltsc2019.json'),
+ [string]$envRootPath = (Join-Path $PWD ".."),
+ [string]$altRegistry = '',
+ [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 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_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
+ }
+
+ $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
+
+ $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
+
+ $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
+
+ 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.0/scripts/UpdateK8SYaml.ps1 b/sxc/10.0/scripts/UpdateK8SYaml.ps1
new file mode 100644
index 0000000..1b5f1f2
--- /dev/null
+++ b/sxc/10.0/scripts/UpdateK8SYaml.ps1
@@ -0,0 +1,177 @@
+[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]$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 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" `
+ -idPassword "Your Sitecore Identity password" `
+ -xcIdSecret "Your XC Connect Client Secret" `
+ -reportingApiKey "Your Sitecore Reporting API key"
+#>
+
+#check for the json file
+if (Test-Path("$jsonFile")) {
+
+ Import-Module (Join-Path $PSScriptRoot "ScriptSupport") -DisableNameChecking -Global
+
+ $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-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 nonproduction SQL/Solr containers
+ $nonprod = "$($containerConfigInfo.sxpproject)/$($containerConfigInfo.nonproductionproject)"
+
+ Get-ChildItem -Path $_.FullName -Filter "*.yaml" -Exclude '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 "{nonproduction-project}", $nonprod | Set-Content $_.FullName -NoNewline
+ (Get-Content $_.FullName -Raw) -replace "{short-version-ltsc}", $($containerConfigInfo.shorttag) | Set-Content $_.FullName -NoNewline
+ }
+ }
+} else {
+ throw "No JSON file"
+}
\ No newline at end of file
diff --git a/sxc/10.0/scripts/WDPMapping.json b/sxc/10.0/scripts/WDPMapping.json
new file mode 100644
index 0000000..8aa5ca4
--- /dev/null
+++ b/sxc/10.0/scripts/WDPMapping.json
@@ -0,0 +1,174 @@
+[
+ {
+ "WDPs": [
+ "Sitecore Commerce Experience Accelerator Storefront Themes",
+ "Sitecore Commerce Experience Accelerator Storefront",
+ "Sitecore Commerce Experience Accelerator"
+ ],
+ "DestinationFolder": "xc1-cxa/cd/wdp",
+ "ToCopyFolder": "Content/Website"
+ },
+ {
+ "WDPs": [
+ "Sitecore Commerce Experience Accelerator Storefront Themes",
+ "Sitecore Commerce Experience Accelerator Storefront",
+ "Sitecore Commerce Experience Accelerator"
+ ],
+ "DestinationFolder": "xc1-cxa/cm/wdp",
+ "ToCopyFolder": "Content/Website"
+ },
+ {
+ "WDPs": [
+ "Sitecore Commerce Experience Accelerator Habitat Catalog",
+ "Sitecore Commerce Experience Accelerator Storefront Themes",
+ "Sitecore Commerce Experience Accelerator Storefront",
+ "Sitecore Commerce Experience Accelerator"
+ ],
+ "DestinationFolder": "xc1-cxa/mssql/dacpacs",
+ "ToCopyFiles": "*.dacpac",
+ "NameMappings": [
+ {"Name":"master", "NewName":"Sitecore.Master"},
+ {"Name":"core", "NewName":"Sitecore.Core"},
+ {"Name":"web", "NewName":"Sitecore.Web"}
+ ]
+ },
+ {
+ "WDPs": [
+ "Sitecore.Commerce.Engine.OnPrem.Solr"
+ ],
+ "DestinationFolder": "xc-common/engine/wdp",
+ "ToCopyFolder": "Content/Website"
+ },
+ {
+ "WDPs": [
+ "Sitecore.BizFx.OnPrem"
+ ],
+ "DestinationFolder": "xc-common/bizfx/wdp",
+ "ToCopyFolder": "Content/Website"
+ },
+ {
+ "WDPs": [
+ "Sitecore.Identity.Config.Commerce"
+ ],
+ "DestinationFolder": "xc-common/id/wdp",
+ "ToCopyFolder": "Content/Website"
+ },
+ {
+ "WDPs": [
+ "Sitecore.Commerce.Engine.OnPrem.Solr",
+ "Sitecore Commerce Connect Core OnPrem",
+ "Sitecore Commerce Engine Connect OnPrem",
+ "Sitecore Commerce Marketing Automation Core OnPrem",
+ "Sitecore Commerce ExperienceProfile Core OnPrem",
+ "Sitecore Commerce ExperienceAnalytics Core OnPrem",
+ "Adventure Works Images.OnPrem",
+ "Sitecore.Commerce.Habitat.Images.OnPrem"
+ ],
+ "DestinationFolder": "xc-common/mssql/common/dacpacs",
+ "ToCopyFiles": "*.dacpac",
+ "NameMappings": [
+ {"Name":"master", "NewName":"Sitecore.Master"},
+ {"Name":"core", "NewName":"Sitecore.Core"},
+ {"Name":"web", "NewName":"Sitecore.Web"},
+ {"Name":"Sitecore.Commerce.Engine.Global.DB", "NewName":"SitecoreCommerce_Global"},
+ {"Name":"Sitecore.Commerce.Engine.Shared.DB", "NewName":"SitecoreCommerce_SharedEnvironments"}
+ ]
+ },
+ {
+ "WDPs": [
+ "SolrSchemas.Sitecore.Commerce"
+ ],
+ "DestinationFolder": "xc-common/solr/wdp",
+ "ToCopyFolder": ""
+ },
+ {
+ "WDPs": [
+ "SolrSchemas.Sitecore.Commerce"
+ ],
+ "DestinationFolder": "xc-common/solr-init/wdp",
+ "ToCopyFolder": ""
+ },
+ {
+ "WDPs": [
+ "Sitecore Commerce Connect Core OnPrem",
+ "Sitecore Commerce Engine Connect OnPrem",
+ "Sitecore Commerce Marketing Automation Core OnPrem"
+ ],
+ "DestinationFolder": "xc1/cd/wdp",
+ "ToCopyFolder": "Content/Website"
+ },
+ {
+ "WDPs": [
+ "Sitecore Commerce Connect Core OnPrem",
+ "Sitecore Commerce Engine Connect OnPrem",
+ "Sitecore Commerce ExperienceAnalytics Core OnPrem",
+ "Sitecore Commerce ExperienceProfile Core OnPrem",
+ "Sitecore Commerce Marketing Automation Core OnPrem"
+ ],
+ "DestinationFolder": "xc1/cm/wdp",
+ "ToCopyFolder": "Content/Website"
+ },
+ {
+ "WDPs": [
+ "Sitecore Commerce ExperienceAnalytics Core"
+ ],
+ "DestinationFolder": "xc1/prcrep/wdp",
+ "ToCopyFolder": "Content/Website"
+ },
+ {
+ "WDPs": [
+ "Sitecore Commerce Connect Schema Definitions for xConnect"
+ ],
+ "DestinationFolder": "xc1/xdbcollection/wdp",
+ "ToCopyFolder": "Content/Website"
+ },
+ {
+ "WDPs": [
+ "Sitecore Commerce Connect Schema Definitions for IndexWorker"
+ ],
+ "DestinationFolder": "xc1/xdbsearch/wdp",
+ "ToCopyFolder": "Content/Website"
+ },
+ {
+ "WDPs": [
+ "Sitecore Commerce Connect Schema Definitions for IndexWorker"
+ ],
+ "DestinationFolder": "xc-common/xdbworkers/xdbsearchworker/wdp",
+ "ToCopyFolder": "Content/Website"
+ },
+ {
+ "WDPs": [
+ "Sitecore Commerce Marketing Automation for Azure"
+ ],
+ "DestinationFolder": "xc1/xdbautomation/wdp",
+ "ToCopyFolder": "Content/Website"
+ },
+ {
+ "WDPs": [
+ "Sitecore Commerce Marketing Automation for Azure"
+ ],
+ "DestinationFolder": "xc-common/xdbworkers/xdbautomationworker/wdp",
+ "ToCopyFolder": "Content/Website"
+ },
+ {
+ "WDPs": [
+ "Sitecore Commerce Connect Core OnPrem",
+ "Sitecore Commerce Engine Connect OnPrem",
+ "Sitecore Commerce ExperienceAnalytics Core OnPrem",
+ "Sitecore Commerce ExperienceProfile Core OnPrem",
+ "Sitecore Commerce Marketing Automation Core OnPrem",
+ "Sitecore Commerce ExperienceAnalytics Core"
+ ],
+ "DestinationFolder": "xc0/cm/wdp",
+ "ToCopyFolder": "Content/Website"
+ },
+ {
+ "WDPs": [
+ "Sitecore Commerce Connect Schema Definitions for xConnect",
+ "Sitecore Commerce Connect Schema Definitions for IndexWorker",
+ "Sitecore Commerce Marketing Automation for Azure"
+ ],
+ "DestinationFolder": "xc0/xconnect/wdp",
+ "ToCopyFolder": "Content/Website"
+ }
+]
\ No newline at end of file
diff --git a/sxc/10.0/scripts/config2004.json b/sxc/10.0/scripts/config2004.json
new file mode 100644
index 0000000..79c7a80
--- /dev/null
+++ b/sxc/10.0/scripts/config2004.json
@@ -0,0 +1,15 @@
+{
+ "shorttag": "10.0.0-2004",
+ "sxptag": "10.0.0-2004",
+ "customercommercetag": "10.0.0-2004",
+ "spetag": "6.1.1.205-10.0.17763.1339-1809",
+ "sxatag": "10.0.0.3138.205-10.0.17763.1339-1809",
+ "scrdockerregistry": "scr.sitecore.com",
+ "sxpproject": "sxp",
+ "sxcproject": "sxc",
+ "baseproject": "base",
+ "modulesproject": "modules",
+ "nonproductionproject": "nonproduction",
+ "nonproductiontag": "10.0.0-ltsc2019",
+ "os_image_tag": "2004"
+}
diff --git a/sxc/10.0/scripts/config2009.json b/sxc/10.0/scripts/config2009.json
new file mode 100644
index 0000000..4f37f6f
--- /dev/null
+++ b/sxc/10.0/scripts/config2009.json
@@ -0,0 +1,15 @@
+{
+ "shorttag": "10.0.0-2009",
+ "sxptag": "10.0.0-2009",
+ "customercommercetag": "10.0.0-2009",
+ "spetag": "6.1.1.205-10.0.17763.1339-1809",
+ "sxatag": "10.0.0.3138.205-10.0.17763.1339-1809",
+ "scrdockerregistry": "scr.sitecore.com",
+ "sxpproject": "sxp",
+ "sxcproject": "sxc",
+ "baseproject": "base",
+ "modulesproject": "modules",
+ "nonproductionproject": "nonproduction",
+ "nonproductiontag": "10.0.0-ltsc2019",
+ "os_image_tag": "2009"
+}
diff --git a/sxc/10.0/scripts/configltsc2019.json b/sxc/10.0/scripts/configltsc2019.json
new file mode 100644
index 0000000..38f9859
--- /dev/null
+++ b/sxc/10.0/scripts/configltsc2019.json
@@ -0,0 +1,15 @@
+{
+ "shorttag": "10.0.0-ltsc2019",
+ "sxptag": "10.0.0-ltsc2019",
+ "customercommercetag": "10.0.0-ltsc2019",
+ "spetag": "6.1.1.205-10.0.17763.1339-1809",
+ "sxatag": "10.0.0.3138.205-10.0.17763.1339-1809",
+ "scrdockerregistry": "scr.sitecore.com",
+ "sxpproject": "sxp",
+ "sxcproject": "sxc",
+ "baseproject": "base",
+ "modulesproject": "modules",
+ "nonproductionproject": "nonproduction",
+ "nonproductiontag": "10.0.0-ltsc2019",
+ "os_image_tag": "ltsc2019"
+}
\ No newline at end of file
diff --git a/sxc/10.0/scripts/readme.md b/sxc/10.0/scripts/readme.md
new file mode 100644
index 0000000..bdafe26
--- /dev/null
+++ b/sxc/10.0/scripts/readme.md
@@ -0,0 +1,59 @@
+# 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.
+
+**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.
+
+**PrepContainerBuild.ps1** -> takes the Sitecore Experience Commerce Release Package artifacts from [dev.sitecore.net](https://dev.sitecore.net) and expands them into the source code directory structure. 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.
+
+**UpdateEnvCompose.ps1** -> updates a /[topology]/.env file with provided values.
+
+**UpdateK8SYaml.ps1** -> sets Kubernetes secrets files with values from the configltsc2019 json file. Kubernetes only supports Windows LTSC 2019 images.
+
+**ScriptSupport.psm1** -> contains supporting functions used by the scripts.
+
+## JSON Files
+
+**WDPMapping.json** -> used by the PrepContainerBuild.ps1
. This file contains mapping information that is used to place the content of the release package artifacts in the correct location for use by the docker-compose build
process.
+>**NOTE:** You must list packages with similar names starting with more exclusive package name, and ending with the less exclusive package name. For example:
+> ```JSON
+> {
+> "WDPs": [
+> "Sitecore Commerce Experience Accelerator Storefront Themes",
+> "Sitecore Commerce Experience Accelerator Storefront",
+> "Sitecore Commerce Experience Accelerator"
+> ],
+> "DestinationFolder": "xc1-cxa/cd/wdp",
+> "ToCopyFolder": "Content/Website"
+> }
+> ```
+
+**configltsc2019.json** and **config1909.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 to customize the files for use in the build and run processes.
+
+| Variable | Value | Description |
+| --------------- | --------------------------- | -------------------------------------------------------------|
+| shorttag | 10.0.0-ltsc201 | 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. |
+| sxptag | 10.0.0.004346.337-10.0.17763.1339-ltsc2019 | Long tag of the SXP container image you want to consume. Example of long tag: "10.0.0.004346.337-10.0.17763.1339-ltsc2019" -> *[XP Version].[XP Revision].[Container Build Number]-[Operating System Version].[Operating System Patch Level]-[Operating System Name]*. |
+| customercommercetag | 10.0.0.60231.10194-pbi-422197-0024-10.0.17763.1282-ltsc2019 | Tag for the XC container images you built with your application. |
+| spetag | 6.1.1.205-10.0.17763.1339-1809 | Sitecore Powershell Extensions container image tag. |
+| sxatag | 10.0.0.3138.205-10.0.17763.1339-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.0.0-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 *ltsc2019* and *1909* |
+
+**FakeLicenseFile.txt** -> fake license file used as a place holder for the -licenseFilePath command-line parameter.
diff --git a/sxc/10.0/xc-common/.env b/sxc/10.0/xc-common/.env
new file mode 100644
index 0000000..7364048
--- /dev/null
+++ b/sxc/10.0/xc-common/.env
@@ -0,0 +1,5 @@
+BASE_SITECORE_DOCKER_REGISTRY=scr.sitecore.com/base/
+
+XP_SITECORE_DOCKER_REGISTRY=scr.sitecore.com/sxp/
+XP_SITECORE_TAG=10.0.0-ltsc2019
+OS_IMAGE_TAG=ltsc2019
diff --git a/sxc/10.0/xc-common/bizfx/Dockerfile b/sxc/10.0/xc-common/bizfx/Dockerfile
new file mode 100644
index 0000000..8a63bcc
--- /dev/null
+++ b/sxc/10.0/xc-common/bizfx/Dockerfile
@@ -0,0 +1,34 @@
+# escape=`
+# This Dockerfile is used to generate images for the following roles: bizfx
+
+ARG BASE_IMAGE
+
+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 .\InstallPrerequisites.ps1 .\
+RUN .\InstallPrerequisites.ps1;
+
+COPY wdp/ .
+COPY Init.ps1 "C:\\inetpub\\"
+COPY LogMonitorConfig.json "c:\\LogMonitor\\"
+
+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.0/xc-common/bizfx/Init.ps1 b/sxc/10.0/xc-common/bizfx/Init.ps1
new file mode 100644
index 0000000..9ec3b6a
--- /dev/null
+++ b/sxc/10.0/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.0/xc-common/bizfx/InstallPrerequisites.ps1 b/sxc/10.0/xc-common/bizfx/InstallPrerequisites.ps1
new file mode 100644
index 0000000..0b628c1
--- /dev/null
+++ b/sxc/10.0/xc-common/bizfx/InstallPrerequisites.ps1
@@ -0,0 +1,33 @@
+# delete everything from wwwroot
+Write-Host "Emptying c:\inetpub\wwwroot folder"
+Remove-Item -Recurse C:\inetpub\wwwroot\*
+
+#Install rewrite module
+try {
+ Write-Host "Downloading rewrite module"
+ Invoke-WebRequest -Uri "https://download.microsoft.com/download/1/2/8/128E2E22-C1B9-44A4-BE2A-5859ED1D4592/rewrite_amd64_en-US.msi" -OutFile rewrite_amd64_en-US.msi -ErrorAction Stop;
+ Write-Host "Installing rewrite module"
+ Start-Process -NoNewWindow -Wait msiexec.exe -ArgumentList /i, "rewrite_amd64_en-US.msi", /qn
+}
+catch {
+ Write-Error "Installing rewrite module FAILED."
+ Write-Error Error[0]
+ exit(1)
+}
+
+#install logMonitor
+try {
+ Write-Host "Creating directory for Log Monitor"
+ New-Item -Path "c:\\" -Name "LogMonitor" -ItemType "directory"; `
+ Write-Host "Installing Log Monitor"
+ Invoke-WebRequest -Uri "https://github.com/microsoft/windows-container-tools/releases/download/v1.1/LogMonitor.exe" -OutFile c:\LogMonitor\LogMonitor.exe;
+}
+catch {
+ Write-Error "Installing Log Monitor FAILED"
+ Write-Error Error[0]
+ exit(1)
+}
+
+#remove the rewrite msi
+Write-Host "Cleaning up downloaded file"
+Remove-Item rewrite_amd64_en-US.msi -Recurse -Force;
diff --git a/sxc/10.0/xc-common/bizfx/LogMonitorConfig.json b/sxc/10.0/xc-common/bizfx/LogMonitorConfig.json
new file mode 100644
index 0000000..53373b2
--- /dev/null
+++ b/sxc/10.0/xc-common/bizfx/LogMonitorConfig.json
@@ -0,0 +1,23 @@
+{
+ "LogConfig": {
+ "sources": [
+ {
+ "type": "EventLog",
+ "startAtOldestRecord": false,
+ "eventFormatMultiLine": false,
+ "channels": [
+ {
+ "name": "system",
+ "level": "Error"
+ }
+ ]
+ },
+ {
+ "type": "File",
+ "directory": "c:\\inetpub\\logs",
+ "filter": "*.log",
+ "includeSubdirectories": true
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/sxc/10.0/xc-common/cd-cm/Dockerfile b/sxc/10.0/xc-common/cd-cm/Dockerfile
new file mode 100644
index 0000000..620e3f3
--- /dev/null
+++ b/sxc/10.0/xc-common/cd-cm/Dockerfile
@@ -0,0 +1,38 @@
+# escape=`
+# This Dockerfile is used to generate images for the following roles: cd, cm
+
+ARG BASE_IMAGE
+
+FROM ${BASE_IMAGE}
+
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+
+ENV DOTNET_RUNNING_IN_CONTAINER=true
+
+COPY xdts c:/xdts
+COPY tools c:/tools
+COPY Permissions c:/Permissions
+
+WORKDIR c:/inetpub/wwwroot
+
+COPY Content/Website/ wdp/ ./
+
+ADD https://dist.nuget.org/win-x86-commandline/v5.2.0/nuget.exe c:\tools
+
+RUN New-Item -Path C:\inetpub\wwwroot\App_Config -Name Security-Shared -ItemType directory; `
+ c:\tools\nuget.exe install Microsoft.Web.Xdt -Version 3.0.0 -OutputDirectory C:\tools -ExcludeVersion; `
+ c:\tools\Invoke-XdtTransformations.ps1 -TargetPath c:\inetpub\wwwroot -XdtPath c:\xdts -XdtDllPath c:\tools\Microsoft.Web.Xdt\lib\netstandard2.0\Microsoft.Web.XmlTransform.dll;`
+ 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;
+
+SHELL ["C:\\LogMonitor\\LogMonitor.exe", "powershell.exe"]
+
+# hadolint ignore=DL3025
+ENTRYPOINT $env:IIS_APPPOOL_IDENTITY = 'IIS AppPool\DefaultAppPool'; `
+ C:\tools\GrantWritePermission.ps1 -TargetFoldersFile 'C:\Permissions\AdditionalWriteAllowedFolders.txt' -User $env:IIS_APPPOOL_IDENTITY; `
+ if (-not (Test-Path C:\inetpub\wwwroot\App_Config\Security-Shared\Domains.config)) { Copy-Item -Path C:\inetpub\wwwroot\App_Config\Security\Domains.config -Destination C:\inetpub\wwwroot\App_Config\Security-Shared\Domains.config }; `
+ C:\ServiceMonitor.exe w3svc;
diff --git a/sxc/10.0/xc-common/docker-compose.build.yml b/sxc/10.0/xc-common/docker-compose.build.yml
new file mode 100644
index 0000000..c5115a8
--- /dev/null
+++ b/sxc/10.0/xc-common/docker-compose.build.yml
@@ -0,0 +1,20 @@
+version: "2.4"
+services:
+ id:
+ build:
+ context: ./id
+ args:
+ BASE_IMAGE: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-id:${XP_SITECORE_TAG}
+ image: sitecore-xc-id
+ bizfx:
+ build:
+ context: ./bizfx
+ args:
+ BASE_IMAGE: mcr.microsoft.com/windows/servercore/iis:windowsservercore-${OS_IMAGE_TAG}
+ image: sitecore-xc-bizfx
+ engine:
+ build:
+ context: ./engine
+ args:
+ BASE_IMAGE: mcr.microsoft.com/windows/servercore:${OS_IMAGE_TAG}
+ image: sitecore-xc-engine
diff --git a/sxc/10.0/xc-common/engine/Dockerfile b/sxc/10.0/xc-common/engine/Dockerfile
new file mode 100644
index 0000000..c2bf1ca
--- /dev/null
+++ b/sxc/10.0/xc-common/engine/Dockerfile
@@ -0,0 +1,31 @@
+# escape=`
+# This Dockerfile is used to generate images for the following roles: engine-authoring, engine-shops, engine-minions, engine-ops
+
+ARG BASE_IMAGE
+
+FROM ${BASE_IMAGE}
+
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+
+USER ContainerAdministrator
+
+ADD http://do-srvc-01-dk1.dk.sitecore.net/dtservice/api/assets/deamon/LogMonitor.exe .\LogMonitor\LogMonitor.exe
+ADD https://download.visualstudio.microsoft.com/download/pr/9b9f4a6e-aef8-41e0-90db-bae1b0cf4e34/4ab93354cdff8991d91a9f40d022d450/dotnet-hosting-3.1.6-win.exe .\install\dotnet.exe
+
+RUN Start-Process -FilePath '.\install\dotnet.exe' -ArgumentList '/Passive /NoRestart' -Wait;
+
+ENV ASPNETCORE_URLS=http://+:5000 `
+ DOTNET_RUNNING_IN_CONTAINER=true `
+ DOTNET_RUNNING_IN_CONTAINERS=true
+
+COPY /Healthchecks/Healthcheck.ps1 ./Healthchecks/
+COPY /LogMonitor ./LogMonitor
+
+WORKDIR C:/engine
+COPY wdp/ .
+
+USER ContainerUser
+
+EXPOSE 5000
+
+ENTRYPOINT ["C:\\LogMonitor\\LogMonitor.exe", "dotnet.exe", "Sitecore.Commerce.Engine.dll"]
\ No newline at end of file
diff --git a/sxc/10.0/xc-common/engine/Healthchecks/Healthcheck.ps1 b/sxc/10.0/xc-common/engine/Healthchecks/Healthcheck.ps1
new file mode 100644
index 0000000..1e47cfe
--- /dev/null
+++ b/sxc/10.0/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.0/xc-common/engine/LogMonitor/LogMonitorConfig.json b/sxc/10.0/xc-common/engine/LogMonitor/LogMonitorConfig.json
new file mode 100644
index 0000000..9f88798
--- /dev/null
+++ b/sxc/10.0/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.0/xc-common/id/Dockerfile b/sxc/10.0/xc-common/id/Dockerfile
new file mode 100644
index 0000000..c4e2442
--- /dev/null
+++ b/sxc/10.0/xc-common/id/Dockerfile
@@ -0,0 +1,9 @@
+# This Dockerfile is used to generate images for the following roles: id
+
+ARG BASE_IMAGE
+
+FROM ${BASE_IMAGE}
+
+WORKDIR c:/Identity
+
+COPY wdp/ .
\ No newline at end of file
diff --git a/sxc/10.0/xc-common/mssql/common/tools/DeployRoles.ps1 b/sxc/10.0/xc-common/mssql/common/tools/DeployRoles.ps1
new file mode 100644
index 0000000..8fc478a
--- /dev/null
+++ b/sxc/10.0/xc-common/mssql/common/tools/DeployRoles.ps1
@@ -0,0 +1,126 @@
+param(
+ [Parameter(Mandatory = $true)]
+ [string] $coreDatabaseName,
+
+ [string]$SqlServer = "(local)",
+
+ [string]$SqlAdminUser = "sa",
+
+ [string]$SqlAdminPassword,
+
+ [switch]$SkipStartingServer
+)
+
+function Invoke-Sqlcmd {
+ param(
+ [string]$SqlDatabase,
+ [string]$SqlServer,
+ [string]$SqlAdminUser,
+ [string]$SqlAdminPassword,
+ [string]$Query
+ )
+
+ $arguments = " -Q ""$Query"" -S '$SqlServer' -l 600 -t 600"
+
+ if ($SqlAdminUser -and $SqlAdminPassword) {
+ $arguments += " -U '$SqlAdminUser' -P '$SqlAdminPassword'"
+ }
+
+ if ($SqlDatabase) {
+ $arguments += " -d '$SqlDatabase'"
+ }
+
+ Invoke-Expression "sqlcmd $arguments"
+
+ if ($LASTEXITCODE -ne 0) {
+ throw "sqlcmd exited with code $LASTEXITCODE"
+ }
+}
+
+function Add-Role {
+ param(
+ [string]$coreDatabaseName,
+ [string]$roleName,
+ [string]$applicationName = "sitecore",
+ [string]$sqlServer,
+ [string]$sqlAdminUser,
+ [string]$sqlAdminPassword
+ )
+
+ $sqlcmd = "EXEC [dbo].[aspnet_Roles_CreateRole] '$($applicationName)', '$($roleName)'"
+ Invoke-Sqlcmd -SqlDatabase $coreDatabaseName -SqlServer $sqlServer -SqlAdminUser $sqlAdminUser -SqlAdminPassword $sqlAdminPassword -Query $sqlcmd
+ Write-Host "Created role: $($roleName)."
+}
+
+function Add-RoleToUser {
+ param(
+ [string]$coreDatabaseName,
+ [string]$roleName,
+ [string]$userName,
+ [string]$applicationName = "sitecore",
+ [string]$sqlServer,
+ [string]$sqlAdminUser,
+ [string]$sqlAdminPassword
+ )
+
+ $sqlcmd = "USE [$($coreDatabaseName)]
+ GO
+ declare @dt DATETIME
+ set @dt = GETUTCDATE()
+ EXEC [dbo].[aspnet_UsersInRoles_AddUsersToRoles] '$($applicationName)', '$($userName)', '$($roleName)', @dt
+ GO"
+ Invoke-Sqlcmd -SqlDatabase $coreDatabaseName -SqlServer $sqlServer -SqlAdminUser $sqlAdminUser -SqlAdminPassword $sqlAdminPassword -Query $sqlcmd
+ Write-Host "Role added to user: $($roleName), $($userName)."
+}
+
+function Add-RoleToRole {
+ param(
+ [string]$coreDatabaseName,
+ [string]$memberRoleName,
+ [string]$targetRoleName,
+ [string]$applicationName = "",
+ [string]$sqlServer,
+ [string]$sqlAdminUser,
+ [string]$sqlAdminPassword
+ )
+
+ $sqlcmd = "INSERT INTO [dbo].[RolesInRoles] (MemberRoleName, TargetRoleName, ApplicationName, Created) VALUES ('$($memberRoleName)', '$($targetRoleName)', '$($applicationName)', GETUTCDATE())"
+ Invoke-Sqlcmd -SqlDatabase $coreDatabaseName -SqlServer $sqlServer -SqlAdminUser $sqlAdminUser -SqlAdminPassword $sqlAdminPassword -Query $sqlcmd
+ Write-Host "$($memberRoleName) role added to $($targetRoleName) role."
+}
+
+if (-not $SkipStartingServer) {
+ Start-Service MSSQLSERVER
+}
+
+Add-Role $coreDatabaseName -roleName 'sitecore\Commerce Administrator' -sqlServer $SqlServer -sqlAdminUser $SqlAdminUser -sqlAdminPassword $SqlAdminPassword
+Add-Role $coreDatabaseName -roleName 'sitecore\Commerce Business User' -sqlServer $SqlServer -sqlAdminUser $SqlAdminUser -sqlAdminPassword $SqlAdminPassword
+Add-Role $coreDatabaseName -roleName 'sitecore\Customer Service Representative' -sqlServer $SqlServer -sqlAdminUser $SqlAdminUser -sqlAdminPassword $SqlAdminPassword
+Add-Role $coreDatabaseName -roleName 'sitecore\Customer Service Representative Administrator' -sqlServer $SqlServer -sqlAdminUser $SqlAdminUser -sqlAdminPassword $SqlAdminPassword
+Add-Role $coreDatabaseName -roleName 'sitecore\Merchandiser' -sqlServer $SqlServer -sqlAdminUser $SqlAdminUser -sqlAdminPassword $SqlAdminPassword
+Add-Role $coreDatabaseName -roleName 'sitecore\Pricer' -sqlServer $SqlServer -sqlAdminUser $SqlAdminUser -sqlAdminPassword $SqlAdminPassword
+Add-Role $coreDatabaseName -roleName 'sitecore\Pricer Manager' -sqlServer $SqlServer -sqlAdminUser $SqlAdminUser -sqlAdminPassword $SqlAdminPassword
+Add-Role $coreDatabaseName -roleName 'sitecore\Promotioner' -sqlServer $SqlServer -sqlAdminUser $SqlAdminUser -sqlAdminPassword $SqlAdminPassword
+Add-Role $coreDatabaseName -roleName 'sitecore\Promotioner Manager' -sqlServer $SqlServer -sqlAdminUser $SqlAdminUser -sqlAdminPassword $SqlAdminPassword
+Add-Role $coreDatabaseName -roleName 'sitecore\Relationship Administrator' -sqlServer $SqlServer -sqlAdminUser $SqlAdminUser -sqlAdminPassword $SqlAdminPassword
+Add-Role $coreDatabaseName -roleName 'sitecore\QA' -sqlServer $SqlServer -sqlAdminUser $SqlAdminUser -sqlAdminPassword $SqlAdminPassword
+
+Add-RoleToUser $coreDatabaseName -roleName 'sitecore\Commerce Administrator' -userName 'sitecore\admin' -sqlServer $SqlServer -sqlAdminUser $SqlAdminUser -sqlAdminPassword $SqlAdminPassword
+Add-RoleToUser $coreDatabaseName -roleName 'sitecore\Commerce Business User' -userName 'sitecore\admin' -sqlServer $SqlServer -sqlAdminUser $SqlAdminUser -sqlAdminPassword $SqlAdminPassword
+
+Add-RoleToRole $coreDatabaseName -memberRoleName 'sitecore\Customer Service Representative' -targetRoleName 'sitecore\Commerce Business User' -sqlServer $SqlServer -sqlAdminUser $SqlAdminUser -sqlAdminPassword $SqlAdminPassword
+Add-RoleToRole $coreDatabaseName -memberRoleName 'sitecore\Relationship Administrator' -targetRoleName 'sitecore\Commerce Business User' -sqlServer $SqlServer -sqlAdminUser $SqlAdminUser -sqlAdminPassword $SqlAdminPassword
+Add-RoleToRole $coreDatabaseName -memberRoleName 'sitecore\Pricer' -targetRoleName 'sitecore\Commerce Business User' -sqlServer $SqlServer -sqlAdminUser $SqlAdminUser -sqlAdminPassword $SqlAdminPassword
+Add-RoleToRole $coreDatabaseName -memberRoleName 'sitecore\Promotioner' -targetRoleName 'sitecore\Commerce Business User' -sqlServer $SqlServer -sqlAdminUser $SqlAdminUser -sqlAdminPassword $SqlAdminPassword
+Add-RoleToRole $coreDatabaseName -memberRoleName 'sitecore\Merchandiser' -targetRoleName 'sitecore\Relationship Administrator' -sqlServer $SqlServer -sqlAdminUser $SqlAdminUser -sqlAdminPassword $SqlAdminPassword
+Add-RoleToRole $coreDatabaseName -memberRoleName 'sitecore\Pricer Manager' -targetRoleName 'sitecore\Pricer' -sqlServer $SqlServer -sqlAdminUser $SqlAdminUser -sqlAdminPassword $SqlAdminPassword
+Add-RoleToRole $coreDatabaseName -memberRoleName 'sitecore\Promotioner Manager' -targetRoleName 'sitecore\Promotioner' -sqlServer $SqlServer -sqlAdminUser $SqlAdminUser -sqlAdminPassword $SqlAdminPassword
+Add-RoleToRole $coreDatabaseName -memberRoleName 'sitecore\Customer Service Representative Administrator' -targetRoleName 'sitecore\Customer Service Representative' -sqlServer $SqlServer -sqlAdminUser $SqlAdminUser -sqlAdminPassword $SqlAdminPassword
+Add-RoleToRole $coreDatabaseName -memberRoleName 'sitecore\Commerce Administrator' -targetRoleName 'sitecore\Customer Service Representative Administrator' -sqlServer $SqlServer -sqlAdminUser $SqlAdminUser -sqlAdminPassword $SqlAdminPassword
+Add-RoleToRole $coreDatabaseName -memberRoleName 'sitecore\Commerce Administrator' -targetRoleName 'sitecore\Pricer Manager' -sqlServer $SqlServer -sqlAdminUser $SqlAdminUser -sqlAdminPassword $SqlAdminPassword
+Add-RoleToRole $coreDatabaseName -memberRoleName 'sitecore\Commerce Administrator' -targetRoleName 'sitecore\Promotioner Manager' -sqlServer $SqlServer -sqlAdminUser $SqlAdminUser -sqlAdminPassword $SqlAdminPassword
+Add-RoleToRole $coreDatabaseName -memberRoleName 'sitecore\Commerce Administrator' -targetRoleName 'sitecore\Merchandiser' -sqlServer $SqlServer -sqlAdminUser $SqlAdminUser -sqlAdminPassword $SqlAdminPassword
+
+if (-not $SkipStartingServer) {
+ Stop-Service MSSQLSERVER
+}
\ No newline at end of file
diff --git a/sxc/10.0/xc-common/mssql/common/tools/StartCommerceInit.ps1 b/sxc/10.0/xc-common/mssql/common/tools/StartCommerceInit.ps1
new file mode 100644
index 0000000..2cc0785
--- /dev/null
+++ b/sxc/10.0/xc-common/mssql/common/tools/StartCommerceInit.ps1
@@ -0,0 +1,29 @@
+[CmdletBinding()]
+param (
+ [Parameter(Mandatory)]
+ [ValidateScript({ Test-Path $_ -PathType Container })]
+ [string]$ResourcesDirectory,
+
+ [Parameter(Mandatory)]
+ [string]$SqlServer,
+
+ [Parameter(Mandatory)]
+ [string]$SqlAdminUser,
+
+ [Parameter(Mandatory)]
+ [string]$SqlAdminPassword,
+
+ [Parameter(Mandatory)]
+ [string]$SitecoreAdminPassword,
+
+ [string]$SqlElasticPoolName,
+ [object[]]$DatabaseUsers,
+
+ [string]$CoreDatabaseName
+)
+
+# Forward all arguments to the XP initialization script for initial database publishing and user creation
+.\StartInit.ps1 -ResourcesDirectory $ResourcesDirectory -SqlServer $SqlServer -SqlAdminUser $SqlAdminUser -SqlAdminPassword $SqlAdminPassword -SitecoreAdminPassword $SitecoreAdminPassword -SqlElasticPoolName $SqlElasticPoolName -DatabaseUsers $DatabaseUsers
+
+# Create XC specific roles/users
+.\DeployRoles.ps1 -coreDatabaseName $CoreDatabaseName -SqlServer $SqlServer -SqlAdminUser $SqlAdminUser -SqlAdminPassword $SqlAdminPassword -SkipStartingServer
\ No newline at end of file
diff --git a/sxc/10.0/xc-common/mssql/init/Dockerfile b/sxc/10.0/xc-common/mssql/init/Dockerfile
new file mode 100644
index 0000000..849d6e6
--- /dev/null
+++ b/sxc/10.0/xc-common/mssql/init/Dockerfile
@@ -0,0 +1,35 @@
+# escape=`
+# This Dockerfile is used to generate images for the following roles: mssql
+
+ARG BASE_IMAGE
+
+FROM ${BASE_IMAGE}
+
+ARG TOPOLOGY
+ENV TOPOLOGY=${TOPOLOGY}
+
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+
+COPY ./dacpacs ./resources
+COPY ./tools/StartCommerceInit.ps1 ./tools/DeployRoles.ps1 ./
+
+# hadolint ignore=DL3025
+ENTRYPOINT .\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 -SqlElasticPoolName $env:SQL_ELASTIC_POOL_NAME -CoreDatabaseName $env:SITECORE_CORE_DB `
+ -DatabaseUsers @( `
+ @{'databaseName' = 'Sitecore.Master'; 'username' = $env:Master_Database_Username; 'password' = $env:Master_Database_Password}, `
+ @{'databaseName' = 'Sitecore.Core'; 'username' = $env:Core_Database_Username; 'password' = $env:Core_Database_Password}, `
+ @{'databaseName' = 'Sitecore.Web'; 'username' = $env:Web_Database_Username; 'password' = $env:Web_Database_Password}, `
+ @{'databaseName' = 'Sitecore.Experienceforms'; 'username' = $env:Forms_Database_Username; 'password' = $env:Forms_Database_Password}, `
+ @{'databaseName' = 'Sitecore.Exm.master'; 'username' = $env:Exm_Master_Database_Username; 'password' = $env:Exm_Master_Database_Password}, `
+ @{'databaseName' = 'Sitecore.Marketingautomation'; 'username' = $env:Marketing_Automation_Database_Username; 'password' = $env:Marketing_Automation_Database_Password}, `
+ @{'databaseName' = 'Sitecore.Messaging'; 'username' = $env:Messaging_Database_Username; 'password' = $env:Messaging_Database_Password }, `
+ @{'databaseName' = 'Sitecore.Reporting'; 'username' = $env:Reporting_Database_Username; 'password' = $env:Reporting_Database_Password }, `
+ @{'databaseName' = 'Sitecore.Referencedata'; 'username' = $env:Reference_Data_Database_Username; 'password' = $env:Reference_Data_Database_Password }, `
+ @{'databaseName' = 'Sitecore.Processing.Pools'; 'username' = $env:Processing_Pools_Database_Username; 'password' = $env:Processing_Pools_Database_Password }, `
+ @{'databaseName' = 'Sitecore.Processing.Tasks'; 'username' = $env:Processing_Tasks_Database_Username; 'password' = $env:Processing_Tasks_Database_Password }, `
+ @{'databaseName' = 'Sitecore.Processing.Engine.Tasks'; 'username' = $env:Processing_Engine_Tasks_Database_Username; 'password' = $env:Processing_Engine_Tasks_Database_Password }, `
+ @{'databaseName' = 'Sitecore.Processing.Engine.Storage'; 'username' = $env:Processing_Engine_Storage_Database_Username; 'password' = $env:Processing_Engine_Storage_Database_Password }, `
+ @{'databaseName' = 'Sitecore.Xdb.Collection.ShardMapManager'; 'username' = $env:Collection_ShardMapManager_Database_Username; 'password' = $env:Collection_ShardMapManager_Database_Password }, `
+ @{'databaseName' = 'Sitecore.Xdb.Collection.Shard0'; 'username' = $env:Collection_ShardMapManager_Database_Username; 'password' = $env:Collection_ShardMapManager_Database_Password }, `
+ @{'databaseName' = 'Sitecore.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.0/xc-common/mssql/standalone/Dockerfile b/sxc/10.0/xc-common/mssql/standalone/Dockerfile
new file mode 100644
index 0000000..290999e
--- /dev/null
+++ b/sxc/10.0/xc-common/mssql/standalone/Dockerfile
@@ -0,0 +1,19 @@
+# escape=`
+# This Dockerfile is used to generate images for the following roles: mssql
+
+ARG BASE_IMAGE
+
+FROM ${BASE_IMAGE}
+
+ARG SITECORE_CORE_DB
+ENV SITECORE_CORE_DB=${SITECORE_CORE_DB}
+
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+
+COPY ./dacpacs ./dacpacs
+COPY ./tools/DeployRoles.ps1 ./xc/tools/
+
+RUN C:\DeployDatabases.ps1 -ResourcesDirectory C:\dacpacs -DatabaseOwner "sa" -EnableContainedDatabaseAuth; `
+ .\xc\tools\DeployRoles.ps1 -coreDatabaseName $env:SITECORE_CORE_DB; `
+ Remove-Item .\dacpacs -Recurse -Force; `
+ Remove-Item .\xc -Recurse -Force;
diff --git a/sxc/10.0/xc-common/prc-rep-xdba-xdbc/Dockerfile b/sxc/10.0/xc-common/prc-rep-xdba-xdbc/Dockerfile
new file mode 100644
index 0000000..19eac43
--- /dev/null
+++ b/sxc/10.0/xc-common/prc-rep-xdba-xdbc/Dockerfile
@@ -0,0 +1,10 @@
+# escape=`
+# This Dockerfile is used to generate images for the following roles: prc, rep, xdba, xdbc
+
+ARG BASE_IMAGE
+
+FROM ${BASE_IMAGE}
+
+WORKDIR /inetpub/wwwroot
+
+COPY wdp/ ./
\ No newline at end of file
diff --git a/sxc/10.0/xc-common/solr-init/Dockerfile b/sxc/10.0/xc-common/solr-init/Dockerfile
new file mode 100644
index 0000000..daf8c53
--- /dev/null
+++ b/sxc/10.0/xc-common/solr-init/Dockerfile
@@ -0,0 +1,36 @@
+# escape=`
+
+ARG BASE_IMAGE
+
+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 .\tools\scripts\ .\
+COPY .\${XC_TOPOLOGY}\ .\wdp\ .\data\
+
+ENTRYPOINT .\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.0/xc-common/solr-init/tools/scripts/New-SolrCore-Commerce.ps1 b/sxc/10.0/xc-common/solr-init/tools/scripts/New-SolrCore-Commerce.ps1
new file mode 100644
index 0000000..115e568
--- /dev/null
+++ b/sxc/10.0/xc-common/solr-init/tools/scripts/New-SolrCore-Commerce.ps1
@@ -0,0 +1,48 @@
+param(
+ [Parameter(Mandatory)]
+ [string]$SolrEndpoint,
+
+ [Parameter(Mandatory)]
+ [string[]]$SolrCoreNames,
+
+ [Parameter(Mandatory)]
+ [string]$SolrCorePrefix,
+
+ [Parameter(Mandatory)]
+ [string]$SolrConfigsetName,
+
+ [Parameter(Mandatory)]
+ [string]$SolrReplicationFactor,
+
+ [Parameter(Mandatory)]
+ [string]$SolrNumberOfShards,
+
+ [Parameter(Mandatory)]
+ [string]$SolrMaxShardNumberPerNode,
+
+ $SolrCollectionAliases
+)
+function Invoke-SolrWebRequest {
+ param (
+ [Parameter(Mandatory)]
+ [string]$Uri
+ )
+
+ return Invoke-RestMethod -Credential (Get-SolrCredential) -Uri $Uri `
+ -ContentType "application/json" -Method Post
+}
+foreach($solrCoreName in $SolrCoreNames) {
+
+ $solrCollectionName = ('{0}{1}' -f $SolrCorePrefix, $solrCoreName)
+ Write-Host "Creating $solrCollectionName SOLR collection"
+
+ $solrUrl = [System.String]::Concat($SolrEndpoint, "/admin/collections?action=CREATE&name=", $solrCollectionName ,
+ "&collection.configName=", $SolrConfigsetName, "&replicationFactor=", $SolrReplicationFactor,
+ "&numShards=", $SolrNumberOfShards, "&maxShardsPerNode=", $SolrMaxShardNumberPerNode, "&property.update.autoCreateFields=false")
+ $null = Invoke-SolrWebRequest -Uri $solrUrl
+
+ if( $SolrCollectionAliases.$solrCoreName ) {
+ $aliasName = '{0}{1}' -f $SolrCorePrefix, $SolrCollectionAliases.$solrCoreName
+ .\New-SolrAlias.ps1 -SolrEndpoint $SolrEndpoint -SolrCollectionName $solrCollectionName -AliasName $aliasName
+ }
+}
\ No newline at end of file
diff --git a/sxc/10.0/xc-common/solr-init/tools/scripts/Start-Commerce.ps1 b/sxc/10.0/xc-common/solr-init/tools/scripts/Start-Commerce.ps1
new file mode 100644
index 0000000..e875aac
--- /dev/null
+++ b/sxc/10.0/xc-common/solr-init/tools/scripts/Start-Commerce.ps1
@@ -0,0 +1,92 @@
+param(
+ [Parameter(Mandatory)]
+ [string]$SitecoreSolrConnectionString,
+
+ [Parameter(Mandatory)]
+ [string]$SolrSitecoreConfigsetSuffixName,
+
+ [Parameter(Mandatory)]
+ [string]$SolrCorePrefix,
+
+ [Parameter(Mandatory)]
+ [string]$SolrReplicationFactor,
+
+ [Parameter(Mandatory)]
+ [int]$SolrNumberOfShards,
+
+ [Parameter(Mandatory)]
+ [int]$SolrMaxShardsPerNodes,
+
+ [string]$SolrXdbSchemaFile,
+
+ [Parameter(Mandatory)]
+ [string]$CommerceSolrConnectionString,
+
+ [string]$SolrCommercePrefix,
+
+ [string]$SolrCommercePostfix,
+
+ [string]$SolrCommerceRebuildPostfix
+)
+
+function GetCommerceCoreNames {
+ param (
+ [ValidateSet("commerce")]
+ [string]$CoreType
+ )
+
+ $resultCoreNames = @()
+ Get-ChildItem C:\data -Filter cores*.json | ForEach-Object {
+ $coreNames = (Get-Content $_.FullName | Out-String | ConvertFrom-Json).$CoreType
+ if ($coreNames) {
+ $resultCoreNames += $coreNames
+ }
+ }
+
+ return $resultCoreNames
+}
+
+# XP start
+.\Start.ps1 -SitecoreSolrConnectionString $SitecoreSolrConnectionString -SolrCorePrefix $SolrCorePrefix -SolrSitecoreConfigsetSuffixName $SolrSitecoreConfigsetSuffixName -SolrReplicationFactor $SolrReplicationFactor -SolrNumberOfShards $SolrNumberOfShards -SolrMaxShardsPerNodes $SolrMaxShardsPerNodes -SolrXdbSchemaFile .\data\schema.json
+
+# Commerce Start
+. .\Get-SolrCredential.ps1
+
+$solrContext = .\Parse-ConnectionString.ps1 -SitecoreSolrConnectionString $CommerceSolrConnectionString
+$SolrEndpoint = $solrContext.SolrEndpoint
+$env:SOLR_USERNAME = $solrContext.SolrUsername
+$env:SOLR_PASSWORD = $solrContext.SolrPassword
+
+$solrBaseConfigDir = "C:\temp\commerce"
+.\Download-SolrConfig.ps1 -SolrEndpoint $SolrEndpoint -OutPath $solrBaseConfigDir
+
+$solrCommerceCoreNames = GetCommerceCoreNames("commerce")
+
+foreach ($solrCoreName in $solrCommerceCoreNames) {
+ Write-Information -MessageData "Trying to create collections for '$solrCoreName'." -InformationAction:Continue
+ $solrCollectionName = ('_{0}{1}' -f $solrCoreName, $SolrCommercePostfix)
+ $solrCollectionNameWithPrefix = ('{0}{1}' -f $SolrCommercePrefix, $solrCollectionName)
+
+ $solrRebuildCollectionName = ('{0}{1}' -f $solrCollectionName , $SolrCommerceRebuildPostfix)
+
+ if ($solrCollections -contains $solrCollectionName -or $solrCollections -contains $solrRebuildCollectionName) {
+ Write-Information -MessageData "Commerce collections already exist. Use a collection name prefix different from '$SolrCommercePrefix'." -InformationAction:Continue
+ return
+ }
+
+ $solrConfigsetName = ('{0}{1}' -f $solrCollectionNameWithPrefix, $SolrSitecoreConfigsetSuffixName)
+
+ $solrConfigDir = Join-Path ".\temp" $solrConfigsetName
+ $solrCoreDir = Join-Path ".\data" $solrCoreName
+
+ Copy-Item -Path $solrBaseConfigDir -Destination $solrConfigDir -Recurse -Force
+ Copy-Item -Path (Join-Path $solrCoreDir "*") -Destination $solrConfigDir -Recurse -Force
+
+ .\New-SolrConfig.ps1 -SolrEndpoint $SolrEndpoint -SolrConfigName $solrConfigsetName -SolrConfigDir $solrConfigDir
+
+ .\New-SolrCore-Commerce.ps1 -SolrCoreNames $solrCollectionName -SolrEndpoint $SolrEndpoint -SolrCorePrefix $SolrCommercePrefix -SolrConfigsetName $solrConfigsetName -SolrReplicationFactor $SolrReplicationFactor -SolrNumberOfShards $SolrNumberOfShards -SolrMaxShardNumberPerNode $SolrMaxShardsPerNodes
+ .\New-SolrCore-Commerce.ps1 -SolrCoreNames $solrRebuildCollectionName -SolrEndpoint $SolrEndpoint -SolrCorePrefix $SolrCommercePrefix -SolrConfigsetName $solrConfigsetName -SolrReplicationFactor $SolrReplicationFactor -SolrNumberOfShards $SolrNumberOfShards -SolrMaxShardNumberPerNode $SolrMaxShardsPerNodes
+}
+
+#clean up
+Remove-Item "c:\temp" -Recurse -Force
\ No newline at end of file
diff --git a/sxc/10.0/xc-common/solr-init/xc1/cores-commerce.json b/sxc/10.0/xc-common/solr-init/xc1/cores-commerce.json
new file mode 100644
index 0000000..3e75700
--- /dev/null
+++ b/sxc/10.0/xc-common/solr-init/xc1/cores-commerce.json
@@ -0,0 +1,9 @@
+{
+ "commerce": [
+ "CatalogItems",
+ "Customers",
+ "Orders",
+ "PriceCards",
+ "Promotions"
+ ]
+}
\ No newline at end of file
diff --git a/sxc/10.0/xc-common/solr/Dockerfile b/sxc/10.0/xc-common/solr/Dockerfile
new file mode 100644
index 0000000..ce40707
--- /dev/null
+++ b/sxc/10.0/xc-common/solr/Dockerfile
@@ -0,0 +1,19 @@
+# escape=`
+# This Dockerfile is used to generate images for the following roles: solr
+
+ARG BASE_IMAGE
+
+FROM ${BASE_IMAGE}
+
+ARG SOLR_COMMERCE_CORE_NAMES
+
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+
+COPY ./wdp ./data-commerce
+COPY ./tools/scripts ./
+
+RUN .\Add-Commerce-SolrCores.ps1 -SolrPath C:\solr -SolrCoreNames $env:SOLR_COMMERCE_CORE_NAMES; `
+ Remove-Item ./data-commerce -Recurse -Force
+
+# hadolint ignore=DL3025
+CMD .\Start-Commerce.ps1 -InstallPath "c:\\solr\\server\\solr" -DataPath $env:SOLR_HOME -Verbose
\ No newline at end of file
diff --git a/sxc/10.0/xc-common/solr/tools/scripts/Add-Commerce-SolrCores.ps1 b/sxc/10.0/xc-common/solr/tools/scripts/Add-Commerce-SolrCores.ps1
new file mode 100644
index 0000000..3b04f23
--- /dev/null
+++ b/sxc/10.0/xc-common/solr/tools/scripts/Add-Commerce-SolrCores.ps1
@@ -0,0 +1,44 @@
+[CmdletBinding()]
+param(
+ [Parameter(Mandatory)]
+ [ValidateScript({ Test-Path $_ -PathType Container })]
+ [string]$SolrPath,
+
+ [Parameter(Mandatory)]
+ [ValidateNotNullOrEmpty()]
+ [string]$SolrCoreNames,
+
+ [string]$SolrCommercePostfix = "Scope",
+
+ [string]$SolrCommerceRebuildPostfix = "-Rebuild"
+)
+
+function Create-SolrCore {
+ param (
+ [Parameter(Mandatory)]
+ [ValidateNotNullOrEmpty()]
+ [string] $SourceCoreName,
+
+ [Parameter(Mandatory)]
+ [ValidateNotNullOrEmpty()]
+ [string] $TargetCoreName
+ )
+
+ $corePath = Join-Path $SolrPath "server\solr\$TargetCoreName"
+ Copy-Item -Path (Join-Path $SolrPath "server\solr\configsets\_default\conf") -Destination (Join-Path $corePath "conf") -Recurse -Force
+
+ Copy-Item -Path (Join-Path (Join-Path "data-commerce" $SourceCoreName) '\*') -Destination (Join-Path $corePath "conf")
+
+ $corePropertiesPath = Join-Path $corePath "core.properties"
+ Set-Content -Path $corePropertiesPath -Value ("name=" + $TargetCoreName + [Environment]::NewLine + `
+ "config=solrconfig.xml" + [Environment]::NewLine + `
+ "update.autoCreateFields=false" + [Environment]::NewLine + `
+ "dataDir=data")
+}
+
+$SolrCoreNames -Split ',' | ForEach-Object {
+ $name = ('{0}{1}' -f $_, $SolrCommercePostfix)
+
+ Create-SolrCore -SourceCoreName $_ -TargetCoreName $name
+ Create-SolrCore -SourceCoreName $_ -TargetCoreName ('{0}{1}' -f $name, $SolrCommerceRebuildPostfix)
+}
\ No newline at end of file
diff --git a/sxc/10.0/xc-common/solr/tools/scripts/Start-Commerce.ps1 b/sxc/10.0/xc-common/solr/tools/scripts/Start-Commerce.ps1
new file mode 100644
index 0000000..4096e0d
--- /dev/null
+++ b/sxc/10.0/xc-common/solr/tools/scripts/Start-Commerce.ps1
@@ -0,0 +1,26 @@
+
+param(
+ [Parameter(Mandatory = $true)]
+ [ValidateScript( { Test-Path $_ -PathType 'Container' })]
+ [string]$InstallPath,
+
+ [Parameter(Mandatory = $true)]
+ [ValidateScript( { Test-Path $_ -PathType 'Container' })]
+ [string]$DataPath
+)
+
+$dataFolderEmpty = ($null -eq (Get-ChildItem -Path $DataPath -Filter "solr.xml"))
+if ($dataFolderEmpty)
+{
+ Write-Host "INFO: Solr configuration not found in '$DataPath', copying clean configuration..."
+
+ Get-ChildItem -Path $InstallPath | ForEach-Object {
+ Copy-Item -Recurse -Path $_.FullName -Destination $DataPath
+ }
+}
+else
+{
+ Write-Host "INFO: Existing Solr configuration found in '$DataPath'..."
+}
+
+c:\solr\bin\solr.cmd start -port 8983 -f
diff --git a/sxc/10.0/xc-common/xdbworkers/Dockerfile b/sxc/10.0/xc-common/xdbworkers/Dockerfile
new file mode 100644
index 0000000..66c64df
--- /dev/null
+++ b/sxc/10.0/xc-common/xdbworkers/Dockerfile
@@ -0,0 +1,11 @@
+# This Dockerfile is used to generate images for the following roles: xdbsearchworker, xdbautomationworker
+
+ARG BASE_IMAGE
+
+FROM ${BASE_IMAGE}
+
+WORKDIR /service
+
+ARG CONTENT_PATH
+
+COPY ${CONTENT_PATH} .
\ No newline at end of file
diff --git a/sxc/10.0/xc0/.env b/sxc/10.0/xc0/.env
new file mode 100644
index 0000000..14ed12e
--- /dev/null
+++ b/sxc/10.0/xc0/.env
@@ -0,0 +1,50 @@
+BASE_SITECORE_DOCKER_REGISTRY=scr.sitecore.com/base/
+
+XP_SITECORE_DOCKER_REGISTRY=scr.sitecore.com/sxp/
+XP_SITECORE_TAG=10.0.0-ltsc2019
+
+XC_NONPRODUCTION_SITECORE_DOCKER_REGISTRY=scr.sitecore.com/sxc/nonproduction/
+XC_SITECORE_DOCKER_REGISTRY=scr.sitecore.com/sxc/
+XC_PACKAGES_TAG=10.0.0-ltsc2019
+
+TRAEFIK_IMAGE=traefik:v2.2.0-windowsservercore-1809
+TRAEFIK_ISOLATION=default
+
+ISOLATION=default
+
+CM_HOST=xc0cm.localhost
+ID_HOST=xc0id.localhost
+
+AUTHORING_HOST=authoring.localhost
+SHOPS_HOST=shops.localhost
+MINIONS_HOST=minions.localhost
+OPS_HOST=ops.localhost
+
+BIZFX_HOST=bizfx.localhost
+
+SQL_SA_PASSWORD=Password12345
+SITECORE_ADMIN_PASSWORD=Password12345
+
+SITECORE_MASTER_DB=Sitecore.Master
+SITECORE_CORE_DB=Sitecore.Core
+XC_GLOBAL_DB=SitecoreCommerce_Global
+XC_GLOBAL_DB_TRUSTED_CONNECTION=false
+XC_SHARED_DB=SitecoreCommerce_SharedEnvironments
+XC_SHARED_DB_TRUSTED_CONNECTION=false
+
+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_IDSECRET=
+SITECORE_ID_CERTIFICATE=
+SITECORE_ID_CERTIFICATE_PASSWORD=
+SITECORE_LICENSE=
\ No newline at end of file
diff --git a/sxc/10.0/xc0/cm/Content/Website/App_Config/Include/Domains.Shared.config b/sxc/10.0/xc0/cm/Content/Website/App_Config/Include/Domains.Shared.config
new file mode 100644
index 0000000..32579a3
--- /dev/null
+++ b/sxc/10.0/xc0/cm/Content/Website/App_Config/Include/Domains.Shared.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/sxc/10.0/xc0/cm/Content/Website/App_Config/Include/Y.Commerce.Engine/Y.Sitecore.Commerce.config b/sxc/10.0/xc0/cm/Content/Website/App_Config/Include/Y.Commerce.Engine/Y.Sitecore.Commerce.config
new file mode 100644
index 0000000..9545f59
--- /dev/null
+++ b/sxc/10.0/xc0/cm/Content/Website/App_Config/Include/Y.Commerce.Engine/Y.Sitecore.Commerce.config
@@ -0,0 +1,30 @@
+
+
+
+ $(env:Sitecore_xc_Shops_Url)
+ $(env:Sitecore_xc_Ops_Url)
+ $(env:Sitecore_xc_Minions_Url)
+ $(env:Sitecore_Identity_Server_Authority)
+ $(env:Sitecore_Identity_Server_InternalAuthority)
+ false
+ $(env:Sitecore_xc_Client_Secret_Hash)
+
+
+
+
+
+
+ $(env:Sitecore_xc_ConnectionStrings_Redis)
+
+
+
+
+
+
+
+ true
+
+
+
+
+
\ No newline at end of file
diff --git a/sxc/10.0/xc0/cm/Permissions/AdditionalWriteAllowedFolders.txt b/sxc/10.0/xc0/cm/Permissions/AdditionalWriteAllowedFolders.txt
new file mode 100644
index 0000000..e69de29
diff --git a/sxc/10.0/xc0/cm/tools/GrantWritePermission.ps1 b/sxc/10.0/xc0/cm/tools/GrantWritePermission.ps1
new file mode 100644
index 0000000..ac9190f
--- /dev/null
+++ b/sxc/10.0/xc0/cm/tools/GrantWritePermission.ps1
@@ -0,0 +1,24 @@
+param(
+ [Parameter(Mandatory=$true, ParameterSetName="Array")]
+ [string[]] $TargetFolders,
+
+ [Parameter(Mandatory=$true, ParameterSetName="File")]
+ [string] $TargetFoldersFile,
+
+ [Parameter(Mandatory=$true)]
+ [string] $User
+)
+
+if ($TargetFoldersFile) {
+ $TargetFolders = Get-Content -Path $TargetFoldersFile
+}
+
+$TargetFolders | ForEach-Object {
+ If (-not [string]::IsNullOrEmpty($_)) {
+ If (!(Test-Path $_)) {
+ New-Item -Path $_ -ItemType Directory -Force
+ }
+
+ cmd /C icacls $_ /grant ($User + ":(OI)(CI)M")
+ }
+}
\ No newline at end of file
diff --git a/sxc/10.0/xc0/cm/tools/Invoke-XdtTransformations.ps1 b/sxc/10.0/xc0/cm/tools/Invoke-XdtTransformations.ps1
new file mode 100644
index 0000000..b9e51d5
--- /dev/null
+++ b/sxc/10.0/xc0/cm/tools/Invoke-XdtTransformations.ps1
@@ -0,0 +1,43 @@
+[CmdletBinding()]
+param(
+ [Parameter(Mandatory = $true)]
+ [ValidateScript({ Test-Path $_ -PathType Container })]
+ [string]$TargetPath,
+ [Parameter(Mandatory = $true)]
+ [string]$XdtPath,
+ [Parameter(Mandatory = $true)]
+ [ValidateScript({ Test-Path $_ -PathType Leaf })]
+ [string]$XdtDllPath
+)
+
+if (-not (Test-Path $XdtPath -PathType Container)) {
+ Write-Verbose "Transformations source '$XdtPath' does not exist."
+ return
+}
+
+$transformations = @(Get-ChildItem $XdtPath -File -Recurse)
+
+if ($transformations.Length -eq 0) {
+ Write-Verbose "No transformations in '$XdtPath'."
+ return
+}
+
+Add-Type -Path $XdtDllPath
+
+$transformations | ForEach-Object {
+ $targetFullPath = (Resolve-Path $TargetPath).Path
+ $xdtFullPath = (Resolve-Path $XdtPath).Path
+ $targetFilePath = $_.FullName.Replace($xdtFullPath, $targetFullPath).Replace(".xdt", "")
+
+ $targetDocument = New-Object Microsoft.Web.XmlTransform.XmlTransformableDocument;
+ $targetDocument.PreserveWhitespace = $true
+ $targetDocument.Load($targetFilePath)
+
+ $transformation = New-Object Microsoft.Web.XmlTransform.XmlTransformation($_.FullName)
+ if ($transformation.Apply($targetDocument) -eq $false) {
+ throw "Transformation '$($_.FullName)' on '$($targetFilePath.FullName)' failed."
+ }
+
+ $targetDocument.Save($targetFilePath)
+ Write-Verbose "Transformation '$($_.FullName)' on '$($targetFilePath.FullName)' completed."
+}
\ No newline at end of file
diff --git a/sxc/10.0/xc0/cm/xdts/Web.config.xdt b/sxc/10.0/xc0/cm/xdts/Web.config.xdt
new file mode 100644
index 0000000..72d7ecb
--- /dev/null
+++ b/sxc/10.0/xc0/cm/xdts/Web.config.xdt
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sxc/10.0/xc0/docker-compose.build.yml b/sxc/10.0/xc0/docker-compose.build.yml
new file mode 100644
index 0000000..44686a7
--- /dev/null
+++ b/sxc/10.0/xc0/docker-compose.build.yml
@@ -0,0 +1,45 @@
+version: "2.4"
+services:
+ mssql:
+ build:
+ context: ../xc-common/mssql/common
+ dockerfile: ../standalone/Dockerfile
+ args:
+ BASE_IMAGE: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-xp0-mssql:${XP_SITECORE_TAG}
+ SITECORE_CORE_DB: ${SITECORE_CORE_DB}
+ image: sitecore-xc0-mssql
+ solr:
+ build:
+ context: ../xc-common/solr
+ args:
+ BASE_IMAGE: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-xp0-solr:${XP_SITECORE_TAG}
+ SOLR_COMMERCE_CORE_NAMES: "CatalogItems,Customers,Orders,PriceCards,Promotions"
+ image: sitecore-xc0-solr
+ cm:
+ build:
+ context: ./cm
+ dockerfile: ../../xc-common/cd-cm/Dockerfile
+ args:
+ BASE_IMAGE: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-xp0-cm:${XP_SITECORE_TAG}
+ image: sitecore-xc0-cm
+ xconnect:
+ build:
+ context: ./xconnect
+ dockerfile: ../../xc-common/prc-rep-xdba-xdbc/Dockerfile
+ args:
+ BASE_IMAGE: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-xp0-xconnect:${XP_SITECORE_TAG}
+ image: sitecore-xc0-xconnect
+ xdbsearchworker:
+ build:
+ context: ../xc-common/xdbworkers
+ args:
+ BASE_IMAGE: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-xp0-xdbsearchworker:${XP_SITECORE_TAG}
+ CONTENT_PATH: xdbsearchworker/wdp/App_Data/jobs/continuous/IndexWorker
+ image: sitecore-xc0-xdbsearchworker
+ xdbautomationworker:
+ build:
+ context: ../xc-common/xdbworkers
+ args:
+ BASE_IMAGE: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-xp0-xdbautomationworker:${XP_SITECORE_TAG}
+ CONTENT_PATH: xdbautomationworker/wdp/App_Data/jobs/continuous/AutomationEngine
+ image: sitecore-xc0-xdbautomationworker
diff --git a/sxc/10.0/xc0/docker-compose.yml b/sxc/10.0/xc0/docker-compose.yml
new file mode 100644
index 0000000..2fc48a5
--- /dev/null
+++ b/sxc/10.0/xc0/docker-compose.yml
@@ -0,0 +1,561 @@
+version: "2.4"
+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"
+ 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
+ engine-ops:
+ condition: service_started
+ mssql:
+ isolation: ${ISOLATION}
+ image: ${XC_NONPRODUCTION_SITECORE_DOCKER_REGISTRY}sitecore-xc0-mssql:${XC_PACKAGES_TAG}
+ environment:
+ SA_PASSWORD: ${SQL_SA_PASSWORD}
+ SITECORE_ADMIN_PASSWORD: ${SITECORE_ADMIN_PASSWORD}
+ ACCEPT_EULA: "Y"
+ SQL_SERVER: mssql
+ ports:
+ - "14330:1433"
+ volumes:
+ - type: bind
+ source: c:\containers\mssql-data
+ target: c:\data
+ solr:
+ isolation: ${ISOLATION}
+ ports:
+ - "8984:8983"
+ image: ${XC_NONPRODUCTION_SITECORE_DOCKER_REGISTRY}sitecore-xc0-solr:${XC_PACKAGES_TAG}
+ volumes:
+ - type: bind
+ source: c:\containers\solr-data
+ target: c:\data
+ redis:
+ isolation: ${ISOLATION}
+ image: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-redis:${XP_SITECORE_TAG}
+ restart: unless-stopped
+ id:
+ isolation: ${ISOLATION}
+ image: ${XC_SITECORE_DOCKER_REGISTRY}sitecore-xc-id:${XC_PACKAGES_TAG}
+ depends_on:
+ mssql:
+ condition: service_healthy
+ environment:
+ Sitecore_Sitecore__IdentityServer__SitecoreMemberShipOptions__ConnectionString: Data Source=mssql;Initial Catalog=Sitecore.Core;User ID=sa;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", "powershell", "-command", "C:/Healthchecks/Healthcheck.ps1"]
+ timeout: 300s
+ 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_SITECORE_DOCKER_REGISTRY}sitecore-xc0-cm:${XC_PACKAGES_TAG}
+ depends_on:
+ mssql:
+ condition: service_healthy
+ solr:
+ condition: service_started
+ id:
+ condition: service_started
+ xconnect:
+ condition: service_started
+ environment:
+ Sitecore_ConnectionStrings_Core: Data Source=mssql;Initial Catalog=Sitecore.Core;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Security: Data Source=mssql;Initial Catalog=Sitecore.Core;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Master: Data Source=mssql;Initial Catalog=Sitecore.Master;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Web: Data Source=mssql;Initial Catalog=Sitecore.Web;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Messaging: Data Source=mssql;Initial Catalog=Sitecore.Messaging;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Xdb.Processing.Pools: Data Source=mssql;Initial Catalog=Sitecore.Processing.pools;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Xdb.Referencedata: Data Source=mssql;Initial Catalog=Sitecore.Referencedata;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Xdb.Processing.Tasks: Data Source=mssql;Initial Catalog=Sitecore.Processing.tasks;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_ExperienceForms: Data Source=mssql;Initial Catalog=Sitecore.ExperienceForms;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Exm.Master: Data Source=mssql;Initial Catalog=Sitecore.Exm.master;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Reporting: Data Source=mssql;Initial Catalog=Sitecore.Reporting;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Sitecore.Reporting.Client: http://xconnect
+ Sitecore_ConnectionStrings_Solr.Search: http://solr:8983/solr
+ 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_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_xc_Shops_Url: http://engine-authoring:5000/api/
+ Sitecore_xc_Ops_Url: http://engine-ops:5000/commerceops/
+ Sitecore_xc_Minions_Url: http://engine-minions:5000/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
+ xconnect:
+ isolation: ${ISOLATION}
+ image: ${XC_SITECORE_DOCKER_REGISTRY}sitecore-xc0-xconnect:${XC_PACKAGES_TAG}
+ ports:
+ - "8081:80"
+ depends_on:
+ mssql:
+ condition: service_healthy
+ solr:
+ condition: service_started
+ environment:
+ Sitecore_License: ${SITECORE_LICENSE}
+ Sitecore_ConnectionStrings_Messaging: Data Source=mssql;Initial Catalog=Sitecore.Messaging;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Processing.Engine.Storage: Data Source=mssql;Initial Catalog=Sitecore.Processing.Engine.Storage;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Reporting: Data Source=mssql;Initial Catalog=Sitecore.Reporting;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Xdb.Marketingautomation: Data Source=mssql;Initial Catalog=Sitecore.Marketingautomation;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Xdb.Processing.Pools: Data Source=mssql;Initial Catalog=Sitecore.Processing.pools;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Xdb.Referencedata: Data Source=mssql;Initial Catalog=Sitecore.Referencedata;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Collection: Data Source=mssql;Initial Catalog=Sitecore.Xdb.Collection.ShardMapManager;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_SolrCore: http://solr:8983/solr/sitecore_xdb
+ 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_SITECORE_DOCKER_REGISTRY}sitecore-xc0-xdbsearchworker:${XC_PACKAGES_TAG}
+ depends_on:
+ mssql:
+ condition: service_healthy
+ solr:
+ condition: service_started
+ restart: unless-stopped
+ environment:
+ Sitecore_ConnectionStrings_Collection: Data Source=mssql;Initial Catalog=Sitecore.Xdb.Collection.ShardMapManager;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_SolrCore: http://solr:8983/solr/sitecore_xdb
+ 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_SITECORE_DOCKER_REGISTRY}sitecore-xc0-xdbautomationworker:${XC_PACKAGES_TAG}
+ depends_on:
+ mssql:
+ condition: service_healthy
+ xconnect:
+ condition: service_started
+ restart: unless-stopped
+ environment:
+ Sitecore_ConnectionStrings_XConnect.Collection: http://xconnect
+ Sitecore_ConnectionStrings_Xdb.Marketingautomation: Data Source=mssql;Initial Catalog=Sitecore.Marketingautomation;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Xdb.Referencedata: Data Source=mssql;Initial Catalog=Sitecore.Referencedata;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Messaging: Data Source=mssql;Initial Catalog=Sitecore.Messaging;User ID=sa;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:
+ mssql:
+ condition: service_healthy
+ xconnect:
+ condition: service_started
+ restart: unless-stopped
+ environment:
+ Sitecore_ConnectionStrings_Processing.Engine.Storage: Data Source=mssql;Initial Catalog=Sitecore.Processing.Engine.Storage;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Processing.Engine.Tasks: Data Source=mssql;Initial Catalog=Sitecore.Processing.Engine.Tasks;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_XConnect.Collection: http://xconnect
+ Sitecore_ConnectionStrings_XConnect.Configuration: http://xconnect
+ Sitecore_ConnectionStrings_XConnect.Search: http://xconnect
+ Sitecore_ConnectionStrings_Messaging: Data Source=mssql;Initial Catalog=Sitecore.Messaging;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Reporting: Data Source=mssql;Initial Catalog=Sitecore.Reporting;User ID=sa;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_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_SITECORE_DOCKER_REGISTRY}sitecore-xc-engine:${XC_PACKAGES_TAG}
+ depends_on:
+ mssql:
+ 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: mssql
+ COMMERCEENGINE_GlobalDatabaseUserName: sa
+ COMMERCEENGINE_GlobalDatabasePassword: ${SQL_SA_PASSWORD}
+ COMMERCEENGINE_GlobalTrustedConnection: "${XC_GLOBAL_DB_TRUSTED_CONNECTION}"
+ COMMERCEENGINE_SharedDatabaseName: ${XC_SHARED_DB}
+ COMMERCEENGINE_SharedDatabaseServer: mssql
+ COMMERCEENGINE_SharedDatabaseUserName: sa
+ 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: "false"
+ COMMERCEENGINE_StorefrontIndexPrefix_web_index: sitecore_web_index
+ COMMERCEENGINE_StorefrontIndexPrefix_master_index: sitecore_master_index
+ COMMERCEENGINE_SearchIndexPrefixOrdersScope: OrdersScope
+ COMMERCEENGINE_SearchIndexPrefixOrdersScope-Rebuild: OrdersScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixCustomersScope: CustomersScope
+ COMMERCEENGINE_SearchIndexPrefixCustomersScope-Rebuild: CustomersScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixCatalogItemsScope: CatalogItemsScope
+ COMMERCEENGINE_SearchIndexPrefixCatalogItemsScope-Rebuild: CatalogItemsScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixPromotionsScope: PromotionsScope
+ COMMERCEENGINE_SearchIndexPrefixPromotionsScope-Rebuild: PromotionsScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixPriceCardsScope: PriceCardsScope
+ COMMERCEENGINE_SearchIndexPrefixPriceCardsScope-Rebuild: 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"]
+ timeout: 300s
+ engine-shops:
+ isolation: ${ISOLATION}
+ image: ${XC_SITECORE_DOCKER_REGISTRY}sitecore-xc-engine:${XC_PACKAGES_TAG}
+ depends_on:
+ mssql:
+ 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: mssql
+ COMMERCEENGINE_GlobalDatabaseUserName: sa
+ COMMERCEENGINE_GlobalDatabasePassword: ${SQL_SA_PASSWORD}
+ COMMERCEENGINE_GlobalTrustedConnection: "${XC_GLOBAL_DB_TRUSTED_CONNECTION}"
+ COMMERCEENGINE_SharedDatabaseName: ${XC_SHARED_DB}
+ COMMERCEENGINE_SharedDatabaseServer: mssql
+ COMMERCEENGINE_SharedDatabaseUserName: sa
+ 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: "false"
+ COMMERCEENGINE_StorefrontIndexPrefix_web_index: sitecore_web_index
+ COMMERCEENGINE_StorefrontIndexPrefix_master_index: sitecore_master_index
+ COMMERCEENGINE_SearchIndexPrefixOrdersScope: OrdersScope
+ COMMERCEENGINE_SearchIndexPrefixOrdersScope-Rebuild: OrdersScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixCustomersScope: CustomersScope
+ COMMERCEENGINE_SearchIndexPrefixCustomersScope-Rebuild: CustomersScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixCatalogItemsScope: CatalogItemsScope
+ COMMERCEENGINE_SearchIndexPrefixCatalogItemsScope-Rebuild: CatalogItemsScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixPromotionsScope: PromotionsScope
+ COMMERCEENGINE_SearchIndexPrefixPromotionsScope-Rebuild: PromotionsScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixPriceCardsScope: PriceCardsScope
+ COMMERCEENGINE_SearchIndexPrefixPriceCardsScope-Rebuild: 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"]
+ timeout: 300s
+ engine-minions:
+ isolation: ${ISOLATION}
+ image: ${XC_SITECORE_DOCKER_REGISTRY}sitecore-xc-engine:${XC_PACKAGES_TAG}
+ depends_on:
+ mssql:
+ 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: mssql
+ COMMERCEENGINE_GlobalDatabaseUserName: sa
+ COMMERCEENGINE_GlobalDatabasePassword: ${SQL_SA_PASSWORD}
+ COMMERCEENGINE_GlobalTrustedConnection: "${XC_GLOBAL_DB_TRUSTED_CONNECTION}"
+ COMMERCEENGINE_SharedDatabaseName: ${XC_SHARED_DB}
+ COMMERCEENGINE_SharedDatabaseServer: mssql
+ COMMERCEENGINE_SharedDatabaseUserName: sa
+ 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: "false"
+ COMMERCEENGINE_StorefrontIndexPrefix_web_index: sitecore_web_index
+ COMMERCEENGINE_StorefrontIndexPrefix_master_index: sitecore_master_index
+ COMMERCEENGINE_SearchIndexPrefixOrdersScope: OrdersScope
+ COMMERCEENGINE_SearchIndexPrefixOrdersScope-Rebuild: OrdersScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixCustomersScope: CustomersScope
+ COMMERCEENGINE_SearchIndexPrefixCustomersScope-Rebuild: CustomersScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixCatalogItemsScope: CatalogItemsScope
+ COMMERCEENGINE_SearchIndexPrefixCatalogItemsScope-Rebuild: CatalogItemsScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixPromotionsScope: PromotionsScope
+ COMMERCEENGINE_SearchIndexPrefixPromotionsScope-Rebuild: PromotionsScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixPriceCardsScope: PriceCardsScope
+ COMMERCEENGINE_SearchIndexPrefixPriceCardsScope-Rebuild: 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"]
+ timeout: 300s
+ engine-ops:
+ isolation: ${ISOLATION}
+ image: ${XC_SITECORE_DOCKER_REGISTRY}sitecore-xc-engine:${XC_PACKAGES_TAG}
+ depends_on:
+ mssql:
+ condition: service_healthy
+ solr:
+ condition: service_started
+ id:
+ condition: service_started
+ redis:
+ condition: service_started
+ cm:
+ condition: service_started
+ environment:
+ COMMERCEENGINE_AppSettings__DeploymentId: HabitatOps01
+ COMMERCEENGINE_AppSettings__EnvironmentName: HabitatOps
+ 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: mssql
+ COMMERCEENGINE_GlobalDatabaseUserName: sa
+ COMMERCEENGINE_GlobalDatabasePassword: ${SQL_SA_PASSWORD}
+ COMMERCEENGINE_GlobalTrustedConnection: "${XC_GLOBAL_DB_TRUSTED_CONNECTION}"
+ COMMERCEENGINE_SharedDatabaseName: ${XC_SHARED_DB}
+ COMMERCEENGINE_SharedDatabaseServer: mssql
+ COMMERCEENGINE_SharedDatabaseUserName: sa
+ 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: "false"
+ COMMERCEENGINE_StorefrontIndexPrefix_web_index: sitecore_web_index
+ COMMERCEENGINE_StorefrontIndexPrefix_master_index: sitecore_master_index
+ COMMERCEENGINE_SearchIndexPrefixOrdersScope: OrdersScope
+ COMMERCEENGINE_SearchIndexPrefixOrdersScope-Rebuild: OrdersScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixCustomersScope: CustomersScope
+ COMMERCEENGINE_SearchIndexPrefixCustomersScope-Rebuild: CustomersScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixCatalogItemsScope: CatalogItemsScope
+ COMMERCEENGINE_SearchIndexPrefixCatalogItemsScope-Rebuild: CatalogItemsScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixPromotionsScope: PromotionsScope
+ COMMERCEENGINE_SearchIndexPrefixPromotionsScope-Rebuild: PromotionsScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixPriceCardsScope: PriceCardsScope
+ COMMERCEENGINE_SearchIndexPrefixPriceCardsScope-Rebuild: 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.ops-secure.entrypoints=websecure"
+ - "traefik.http.routers.ops-secure.rule=Host(`${OPS_HOST}`)"
+ - "traefik.http.routers.ops-secure.tls=true"
+ - "traefik.http.routers.ops-secure.middlewares=force-STS-Header"
+ healthcheck:
+ test: ["CMD", "powershell", "-command", "C:/Healthchecks/Healthcheck.ps1"]
+ timeout: 300s
\ No newline at end of file
diff --git a/sxc/10.0/xc0/traefik/certs/authoring.localhost.crt b/sxc/10.0/xc0/traefik/certs/authoring.localhost.crt
new file mode 100644
index 0000000..9cdebe3
--- /dev/null
+++ b/sxc/10.0/xc0/traefik/certs/authoring.localhost.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDCzCCAfOgAwIBAgIUawlhmAcg8CLeyvsaytNmKthOIAcwDQYJKoZIhvcNAQEL
+BQAwJTEjMCEGA1UEAwwaQ29tbWVyY2UgQ29udGFpbmVyIFJvb3QgQ0EwHhcNMjAw
+NTEzMTkxNzU1WhcNMzAwNTExMTkxNzU1WjAeMRwwGgYDVQQDDBNhdXRob3Jpbmcu
+bG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoshcMsrm
+T/iaE6/XYzbF6HOeOzkEE2+Huid8lyDYvb61ttnv0DYeNmmIdfRaxFwA0maEpfpi
+epOzVNfhTKaMtZ4XO2npCJ3N8edsWqCZASA/J+dU0mQWfH9kKJObFim6yqH5Q6NR
+0qPWB/n4NNlzFO3KAz2z8I/NeUvu/kWMLCpnmO4gGU/4hOgLDS8YYvLDXww9Xzu4
+uFX21FFn6qC5H4qb8rcKmyqCBfCxiBhqhjp1Rkmx4/F3k3KwzvN56ANkS15XHTbV
+BX2YgU1mNZNSDo/kiX99kyema5DMDWu0biWn+GAMh99WCBrnrF6+TmCGOuUdcOb6
+ZldTDwpoLhtpJQIDAQABozowODAJBgNVHRMEAjAAMAsGA1UdDwQEAwIF4DAeBgNV
+HREEFzAVghNhdXRob3JpbmcubG9jYWxob3N0MA0GCSqGSIb3DQEBCwUAA4IBAQA6
+i/kLw2dpJuecOGXDB18kGiieagQJTkaNZjCIroY2iqmHZiHXo173nm6CeIUbWZ/3
+cvyryRxvSln33Hbvn6ZjrPceqJnCHq1ikTMM1lFEfZ3yIaYxppUm2ekm4a5/BjGw
+m237BlIRvHsTvJ97QOftB3WCAANKrHxDZzrUH45IfHxHn+sxxs91svtD6gUoI24w
+LKc/SmrDvB1SullYBVJiWSknz27jRGdkaxhDVwbgMr6ArVU2hKoENmxxTDhBKWz+
+hkkuE816UA+iHEkK0oiuCag5ECFHdewmJLWolOgBphTpi+V/u5DP8AcjnrToewDN
+rZopgrVy5WIFlm0GDY9r
+-----END CERTIFICATE-----
diff --git a/sxc/10.0/xc0/traefik/certs/authoring.localhost.key b/sxc/10.0/xc0/traefik/certs/authoring.localhost.key
new file mode 100644
index 0000000..4c3d145
--- /dev/null
+++ b/sxc/10.0/xc0/traefik/certs/authoring.localhost.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEpAIBAAKCAQEAoshcMsrmT/iaE6/XYzbF6HOeOzkEE2+Huid8lyDYvb61ttnv
+0DYeNmmIdfRaxFwA0maEpfpiepOzVNfhTKaMtZ4XO2npCJ3N8edsWqCZASA/J+dU
+0mQWfH9kKJObFim6yqH5Q6NR0qPWB/n4NNlzFO3KAz2z8I/NeUvu/kWMLCpnmO4g
+GU/4hOgLDS8YYvLDXww9Xzu4uFX21FFn6qC5H4qb8rcKmyqCBfCxiBhqhjp1Rkmx
+4/F3k3KwzvN56ANkS15XHTbVBX2YgU1mNZNSDo/kiX99kyema5DMDWu0biWn+GAM
+h99WCBrnrF6+TmCGOuUdcOb6ZldTDwpoLhtpJQIDAQABAoIBAAuITFfg3g4+W5QX
+ehfyUnUUc9pYQLyrwx7iG0aNsi1HLJKGwCGtI9jRAzTwGdoddoVxc+ZaZc2vVx4k
+qTaH+iIH0DeKWlMc8vE3ZwrIo+5bfX3zOqQpKRqq38qsImmgjTY74W/0SyC0ML6h
+6/66hRevfQdbwLrDRVhZk9X50WNzhK/TRP6irH1QRTgdPUHic4v4t3QhOZZU6Vth
+hbwz1mKeaFIXF2z2ut6QP0WT2sOHXTB4P7f7dh2j78JN3TW4kb0HtKVMnVXce+jP
+qfHEw/eIV2kbXiQLlHRIuHvPrx49T3EcV4PGqViIAj7gFBI2eu7R+B0rogvELeNG
+HzltesECgYEA05uxdhjHJfzZvnccyjbljVIXPnSSZkPHmdd78aORaiN/7ouHoNgU
+wfUuoSf+ptxfEv/hd8LAHcNFUV/8zHDcX+O82Val0LU1uleNOSzKPI+68lK5l652
+pDqI9V7Wh7tAp6a3kQDqlXDbjHTmHoqSH0p288g+6yJk3ntuYLylhlECgYEAxO6E
+koThh9JkuWetG+FpmLjb4pW2oCrdqsT8qGl9G8rfAyseWPE50aNOHtS1Oy3KzaKu
+kjm3/UnAPDASxN3GK/W/uWDTJV6SNG+TzeZJLmacGnBnNuvuBHWqj1xdUzBAfZ8j
+IJmjQOIopvsiOkwS7defyhletz7AdySeX1slfJUCgYEAzxP/uDhLOwuT8mYSEHlk
+bsW05XOiiN0viYdsTW3qMdoHqeN1mJucxKoxNZg0BgqGJ8usU0yMQRQE07uBYnfX
+0SbGelHm9rU+nNps41THnDhzlAwMfzlF9TUrLiPfAPjoLqhh307sQc4tq+gCAkVM
+9b4jZjHCEMyZtXdI7vXtbeECgYEAtITb+59ZSXLAKAB0e6kubfOOhG6ugLWqin6W
+CB7isxZNRY9B+0/sq1GiK7raAkxgqg1lLt8/3Cu9zq5WliWhIezceabbBldheDWL
+bGObU7B1ifrdckfk4CuoVE/bsIT7qOu2fIy5TKHDmAV/A6d2dpWAgPaujxUzwkNL
+9acMft0CgYABLupAu9kgH6pJnNtss0SDGT3K7BJCix1xaPjJb+vqnO0R7BKl/wmk
+iuI1oDRGK4iJl6dCw0nqCP0CVp2dgaKAAHcngEci/IZaetuQXqf7iTxMmZJFbleg
+eCwUf+EBb6WeAtbWnkwF23G9WQV7X8sptRAK2Ni0nQ9qUejnF6qx7Q==
+-----END RSA PRIVATE KEY-----
diff --git a/sxc/10.0/xc0/traefik/certs/bizfx.localhost.crt b/sxc/10.0/xc0/traefik/certs/bizfx.localhost.crt
new file mode 100644
index 0000000..16c5ace
--- /dev/null
+++ b/sxc/10.0/xc0/traefik/certs/bizfx.localhost.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDAzCCAeugAwIBAgIUawlhmAcg8CLeyvsaytNmKthOIAswDQYJKoZIhvcNAQEL
+BQAwJTEjMCEGA1UEAwwaQ29tbWVyY2UgQ29udGFpbmVyIFJvb3QgQ0EwHhcNMjAw
+NTEzMTkxNzU2WhcNMzAwNTExMTkxNzU2WjAaMRgwFgYDVQQDDA9iaXpmeC5sb2Nh
+bGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDMeps0kTXqdmSl
+gbf4FVuGIE/1Z3miXKp2Hw0AukkuSi8pHscUIAH42QuUsQpvRN9jCAS2UPYls0VK
+DOdGqATRIEOWTY1Ekh66/L/2Q9Irn7AFxdk0pMZwLP48RtToIYhIB4dkCB0NwXg1
+bVdlBE4I8t0S8Hqr+kD5WFdHowX0Mw1+tz1pp6XJLsbSpOpkqy6QtnU7FkSyzv7P
+GAiWrmuwXMKFQqHKu84glQ+GgmpDtQDvi2KCRXOWRh4a0sfYhF/r+qDAELepZEbD
+wBwwIzd9KHfg8xw1ElDbJIFqHGFsUyKm46BB0rrb3TbsotLFgGZNQ/iwPjRHyX9n
+Gs67AeELAgMBAAGjNjA0MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgXgMBoGA1UdEQQT
+MBGCD2JpemZ4LmxvY2FsaG9zdDANBgkqhkiG9w0BAQsFAAOCAQEAFuLEY3Puw9Yk
+6I6M80/sd1w/hoX1C4iVGxpioP96Edpv6Eu7NQiGHCx7IFmmVQwVX77Apa80h/+s
+PHEs3F48agV807+6YWWTXVI55qioVB6pql2VjZIY4RfK8bQLE4ZdWobuJmDtDUpH
+IoIV75FZgnkC0CzlbI1t6we5SOg/HRhfMc6PvIoXbxS+gzBHTgX8IfxFZCXHjqfd
+EoLrNFxsSYugpiiPSvuJWpGYi/XA+P4bZG59Sxbo5zTuWQRCWEbW2wIUw0y5RH0x
+agx3aa/ZZAyqpCVwH1YNbjZVAtU2P/hHMs4KDokPbrwa6UPW367pzoSAdGMElgFI
+sSQ59bQSpg==
+-----END CERTIFICATE-----
diff --git a/sxc/10.0/xc0/traefik/certs/bizfx.localhost.key b/sxc/10.0/xc0/traefik/certs/bizfx.localhost.key
new file mode 100644
index 0000000..a7090c4
--- /dev/null
+++ b/sxc/10.0/xc0/traefik/certs/bizfx.localhost.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAzHqbNJE16nZkpYG3+BVbhiBP9Wd5olyqdh8NALpJLkovKR7H
+FCAB+NkLlLEKb0TfYwgEtlD2JbNFSgznRqgE0SBDlk2NRJIeuvy/9kPSK5+wBcXZ
+NKTGcCz+PEbU6CGISAeHZAgdDcF4NW1XZQROCPLdEvB6q/pA+VhXR6MF9DMNfrc9
+aaelyS7G0qTqZKsukLZ1OxZEss7+zxgIlq5rsFzChUKhyrvOIJUPhoJqQ7UA74ti
+gkVzlkYeGtLH2IRf6/qgwBC3qWRGw8AcMCM3fSh34PMcNRJQ2ySBahxhbFMipuOg
+QdK629027KLSxYBmTUP4sD40R8l/ZxrOuwHhCwIDAQABAoIBAHC8pHe+G/DSJ7mM
+pIaWF+kCRbNywoA/AQixI/UjwBdSdWABhRdWcl/mItlvJuakHVm3YQm3545voaMr
+LBQrrMQ0Oq9SwLFuspy7n4bCa8z7dQwpwhChTHsqg11uXBJD8qRr6jy/sG0WHxWt
+3EJotjF+3V6E0c2h41LWXwCzJCQ3R7z0dZRPz1MQ4sp785rB4c76tuZCJYVyKQaL
+tfebKbnVp4Pc1ljUVFB6cwp8fdtfMCc1eCJwyOMukFPaiN+dskx9xX0ps66BDVH/
+xf6cE770bjX8Vgh25EU/gshZX2AEWyZ75enL/NYVTVsDIaPare6vJXPex1Inv/RW
+G/LHFHECgYEA/8SIHobGXUaTqBOXu7tqUYreO8zp8LsGdNtXueVky9QIBJJnvCTJ
+m3YwQmGzOEOEmICMDjHJIX/dBDM2twTPu18a1IDGXb5z1ku0pg/YcQZHoZ+5RczA
+6RVCVx1AHsXx3mJd/6I96J+NflDhVaGrxXFcc/wTxiPr4/SLBOsfvdkCgYEAzKom
+QrzWlmrBrWYb6UX5zfYTsjbsq+F0MkrVgkwFjM8tvngiZ2ICzAGYyXP3L/YUHTPy
+de7c5KHx9uGEfv8lfDNDcMYqPlA4Y1q2ZIRxucg4G6YXHTc77Pujb1ushFTkEx0O
+/MPe/vvJtNnmw+BGAMW06rLKJQRWUdAq2rQNs4MCgYBRGdODwn6x4wg9GoFZkPME
+ikEvuylPIS7J7SdjFd8hVsl4Eah9GzkmZ5Kj6fD3XUl1RgWjFpxNWAsQIuEtpYPt
+SRnr2i2MWjDG+dh9c7bRGAmssUYBYQymnAweLXNAjsnEF3Lw9VQmKDmonSLmkU4z
+XF/Rk1P91zQcY1WVqKy2+QKBgCC4u3FEG9Lksp50itXa+DtzsmZ13ZUFcLxxtn0k
+hmai4R9ouadpxiSzxKfAwK6MW17n5UXxsKNlOPhNyg8739RhpdCr/ikETl+kKzEa
+88vONRpGjb+ACzaybMjrEUP/Bo//v1uuPULrIq6lf/2lJ8wL0AcOGr+cV+iwrYlV
+7DLdAoGBAPEGHP2jFTKvdfngRfKgbFMY0SzlglLNBZXyHTjps5Z5uNZEKGZC9idA
+WBSNHeD87Cwp1GkwHVMdmqDwVPn1dFZvXBizsDUyEq2DJ1USesWKR0LXY+j14P2d
+A7ZDtndrxCYkHIT1E/qv039MlHNnslae0EmycNNDY+4zqkbkZgp5
+-----END RSA PRIVATE KEY-----
diff --git a/sxc/10.0/xc0/traefik/certs/minions.localhost.crt b/sxc/10.0/xc0/traefik/certs/minions.localhost.crt
new file mode 100644
index 0000000..1af28e8
--- /dev/null
+++ b/sxc/10.0/xc0/traefik/certs/minions.localhost.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDBzCCAe+gAwIBAgIUawlhmAcg8CLeyvsaytNmKthOIAkwDQYJKoZIhvcNAQEL
+BQAwJTEjMCEGA1UEAwwaQ29tbWVyY2UgQ29udGFpbmVyIFJvb3QgQ0EwHhcNMjAw
+NTEzMTkxNzU2WhcNMzAwNTExMTkxNzU2WjAcMRowGAYDVQQDDBFtaW5pb25zLmxv
+Y2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALk2NYAFYyqF
+DX1jTNy2qzFX0DqHnrP1ARY+5OY96D1yifJdC9AIGEka5M/WnPbL63Ccz9FfQtZn
+sNS03kr9bWcmcwRvC/MNCDHIDIg8DMhmOQ3DKYNT8LjfOEW93wN1P+Wp8hOhr/Gt
+T4sdgJxlkbwsl6t8bdMdXx756V2I+bjK5e7l0cbkJs2ZX38tf4FLlEk07qPg188I
+xh+fYJzzc6OHvqJFGeKTYZzL762F3ntJ5uo/2CKZygAHlmxmegRGxODI7whseD2D
+ysnYln4mClgLMxGCo+mWV4l7gVwipQqenJrQKU6JdL63u5/RwC7iLTvNExwoVGiE
+GloHFau6BGUCAwEAAaM4MDYwCQYDVR0TBAIwADALBgNVHQ8EBAMCBeAwHAYDVR0R
+BBUwE4IRbWluaW9ucy5sb2NhbGhvc3QwDQYJKoZIhvcNAQELBQADggEBAGTZ64jK
+K3jIxV/sKSqGdexB/koQ3qHKpfHn6X1CnLwsoYWVFz/OLgqLSFRgsJb9k3eL20r/
+XTEK+Ac2POs+3xLkVe5TPWjJvz/2O98ldsPHtxmY4dyjB9S6iSH3G9vxzZUIWU6t
+PMBrTwU+JDHjqp3u3aEVMGmYIqBv0Gws+DiNRvgBJMXVr0k+msydSnxgTouOG6E1
+ygSzyfoVATQ87+vfIku9oiOnlLZ0BgRcByGqlbf255lf4y0WpREXK7J+CRBlnC1a
+slb+ZPJjlc2m2qxFp75ZYsK59Pr81neVegEsHIsSQX2ImHG7yvltY8ceRIcUHhk1
+Ob5uS/hG/Ykxn5U=
+-----END CERTIFICATE-----
diff --git a/sxc/10.0/xc0/traefik/certs/minions.localhost.key b/sxc/10.0/xc0/traefik/certs/minions.localhost.key
new file mode 100644
index 0000000..7d30311
--- /dev/null
+++ b/sxc/10.0/xc0/traefik/certs/minions.localhost.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEpQIBAAKCAQEAuTY1gAVjKoUNfWNM3LarMVfQOoees/UBFj7k5j3oPXKJ8l0L
+0AgYSRrkz9ac9svrcJzP0V9C1mew1LTeSv1tZyZzBG8L8w0IMcgMiDwMyGY5DcMp
+g1PwuN84Rb3fA3U/5anyE6Gv8a1Pix2AnGWRvCyXq3xt0x1fHvnpXYj5uMrl7uXR
+xuQmzZlffy1/gUuUSTTuo+DXzwjGH59gnPNzo4e+okUZ4pNhnMvvrYXee0nm6j/Y
+IpnKAAeWbGZ6BEbE4MjvCGx4PYPKydiWfiYKWAszEYKj6ZZXiXuBXCKlCp6cmtAp
+Tol0vre7n9HALuItO80THChUaIQaWgcVq7oEZQIDAQABAoIBAQClr70Enc0syIJc
+3WxxNmjHZ4s8EP8EdfVW9UTIRDFyZvjI/DwJCnTPUWPIGnGoxpwEzgOLhfDA5Vnn
+rzX9V+F7GYZjPQQvlkTyY8fyR+YXkHsRuLl2Zq0+dVJd8ZGEAmv7BKEutsIzLZuv
+E+FuB97ru+ii3FlTNz9U8rS1nEfp6vNVvRSfRhFttoyFvreWzl/Rtslt9z1oGDSJ
+8DTuEBujaGX85I4Hofqxh7/FV5v2vWrShRqcAr/feAuA+EaiCqnknBnhEOwkajxU
+Mc3+SOt3coeHjPcDsbkvJnAjMzHJCHaA3Pucxv1ZArxh79ykF9IvltLBgHHA1IjE
+QlEx1BMxAoGBANsy0PVy0mRh6tkWJ0cvX5DEFsFdtTXgc0bJ40FwFKRYPYAuDfA+
+l1DTSawQa1OdFzfoh/F8Oxg5K4Q7dn9n2n3Ng3sum4BLIG4s0yn9p+HGNJpasCkQ
+pHrtYfC41uLpBnoZAxQzyFbvzRhZAF5jKIE+5XOQ43hLr6OIuuLEYKU/AoGBANhO
+oynttN80pXNNFPkWExvZjgz54DMK+gv2VP1Z4DeRjkkevjKMJLdl46Yv9gPlwTeg
+YV6DupEAM3nHJX8mm9aG9S9lcfcjNnz8HVNH0fhufudoOQeEJNLpi8dVnB2HtV//
+zbERlz2zh4eAro+XjVm5sOROdKZzifbkiCLRG/lbAoGACR4V/v+lrLM994WqYJWh
+3f2qDKT/MpyBbwJax5AH68YX2MsRnVqdJKmFOPj93d585sBvVyYZtyo5myh2B1qk
+hfMUcv0/TpjRYoPOzMJWR1fdPEZlaW/dx5c0KbUmiw2yTUXZEPAOdz9GQqsBDuwE
+9UtOc/4k2A4d4il/zIrqkjUCgYEAtsAppmEI8ZP/PR0g3RnDZ0I1e80ZmMZrX/Ps
+9mgawZgeiLSKqRYyZyiUX3Ih/kT9K8w6t6m/1IZA92BD09uAyo0XVcX1tYFwpcQz
+2orRYX2phkVN+YWxvuhGilFQJrrjiIoM9M8R4rVtihQ0Z2j5qZbzVtDaSU9QfuGy
+Cwh1BAUCgYEAyxxCzetjJ53tA7UFa39V7+RJHsz8Xgf3GZnAjJjQTmc1NdevZoz6
+T8plmRJ8cMpwpyOPx2h6MRxlXm5WTd6qd9eTYKaRHdlHzfvzKLcSVE3H0qMQqcNJ
+X1/NQwVdrl0FH2hy6GdsLB75NvobuJjHQitVYDhOr7OqwqZIGGUgQpM=
+-----END RSA PRIVATE KEY-----
diff --git a/sxc/10.0/xc0/traefik/certs/ops.localhost.crt b/sxc/10.0/xc0/traefik/certs/ops.localhost.crt
new file mode 100644
index 0000000..794cf9b
--- /dev/null
+++ b/sxc/10.0/xc0/traefik/certs/ops.localhost.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIC/zCCAeegAwIBAgIUawlhmAcg8CLeyvsaytNmKthOIAowDQYJKoZIhvcNAQEL
+BQAwJTEjMCEGA1UEAwwaQ29tbWVyY2UgQ29udGFpbmVyIFJvb3QgQ0EwHhcNMjAw
+NTEzMTkxNzU2WhcNMzAwNTExMTkxNzU2WjAYMRYwFAYDVQQDDA1vcHMubG9jYWxo
+b3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5yZIWhjhvBNEuem3
+OxBgMyAPfPqX6eDVWsf7+Mlyiw5uyf4yUm/48Nkp2cP5bXZd+zPxIgRyRiHnvDTz
+GIDfELgzQImsek5CCbxIgACtsKefVxpHEMC4EXk3eCsihzZxLRwIa/yoQM13dKs/
+oNbJjtF+zzbO7MQiza/3Ug0ixUhWJR1Z4S+J7J/xrJYlWTe8DYt06/8w5WRedvVI
+/o/ufZRZxYXGty9bck3yeF8HzgS9KaBwCtxCIhiDJ7+swZXW7Yp7inpyypoWsSBx
+yfWR4BZsuLtI1Esh0qqiI3QojzFWsIEgQvJsAjFc4621cFuA2G6dsTGgJQnJd93C
+jNiUpQIDAQABozQwMjAJBgNVHRMEAjAAMAsGA1UdDwQEAwIF4DAYBgNVHREEETAP
+gg1vcHMubG9jYWxob3N0MA0GCSqGSIb3DQEBCwUAA4IBAQCJYWGaqLsk8NEBa8xg
+MexvBomSbBaSRAS5fKr40bGgEvulG+1W1WJIQ/uuHV7zgDkpnqcu5P+aF4b32ujI
+DJqYoC9MTZu+Sb2s7Z/SIcQNeTobvd6MfH1KVvOs375KM5zt4hajLdD/lt3VyiFQ
+1a/HdiWLIwNmuXzvHvsjMZoffKoxNI8SA/3TBjCo8EpC8AUFv5BnG1ca2leEJM3t
+NU+MfSEfdpQOURPgKazXm48u0TXCz7YFGnDIkLswTBonOYfusjNO3AbUb7YQv4Gn
+LPijiybI2GoBjSkgO6l1VDrh3GvMb583yJXG1jZNbBSiy7xGA5ffJjBqfjKmK/Ue
+2i7d
+-----END CERTIFICATE-----
diff --git a/sxc/10.0/xc0/traefik/certs/ops.localhost.key b/sxc/10.0/xc0/traefik/certs/ops.localhost.key
new file mode 100644
index 0000000..bd6c748
--- /dev/null
+++ b/sxc/10.0/xc0/traefik/certs/ops.localhost.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEpQIBAAKCAQEA5yZIWhjhvBNEuem3OxBgMyAPfPqX6eDVWsf7+Mlyiw5uyf4y
+Um/48Nkp2cP5bXZd+zPxIgRyRiHnvDTzGIDfELgzQImsek5CCbxIgACtsKefVxpH
+EMC4EXk3eCsihzZxLRwIa/yoQM13dKs/oNbJjtF+zzbO7MQiza/3Ug0ixUhWJR1Z
+4S+J7J/xrJYlWTe8DYt06/8w5WRedvVI/o/ufZRZxYXGty9bck3yeF8HzgS9KaBw
+CtxCIhiDJ7+swZXW7Yp7inpyypoWsSBxyfWR4BZsuLtI1Esh0qqiI3QojzFWsIEg
+QvJsAjFc4621cFuA2G6dsTGgJQnJd93CjNiUpQIDAQABAoIBAQC1Ca3HKw+5nxnH
+xn4k+2ltAWJAD4Dlw5s208TMkPJuaOpqt/WvzVUbReraTPxROFDZS1BDxVm/BhUa
+uhnfiierT6mMlYeJ7zsXpujdoCppXo+Ux9b7DwXbYaYJLzeG0SQJIZiTAzrALmyt
+6uYV0cPhYMFCB/o/RErB8FzzXahq/ASfAXZ3heCtD5YA64pViH9Wh6d4jd7FyKwR
+ps12sEq5Mh8BOTFTSCyTtaYKpzmqCb66YmiQuiTVItVoOr7HETvpIR7ebevcmo+5
+2MApjl4mxF1jkgec+UDnL8Td+VssPWVc0qyfHYd+HTx6eiwUaHD06LUrILHRWrER
+qHPPmOpNAoGBAPjYnjna95PIIIJH0Gcz/kpCzeNb4DCSjJz0zv2yifPFM0KdRyE2
+n9WjZzbpfA2FHRpTA+E9ifXIhmFCJi28BlCD+OAZbLh3esYAUkVEVZgoyU4j3wiU
+GfDeEE21UoYU1ieRApVvOanNWeu5IMH+94DzuXPQgtrFQ+5iKp/TP1ObAoGBAO3L
+bSXlArMfKjgx97xLcaYGdICwf3EPsJSQpMozJGutnf2zGpbvv3zPu6rajf1+0SOR
+frkmUE95waPW03hW6R6SewTkp0ZGQzpigp/MzEUzPcwax+V256wNmfxDfNqnR7hY
+oAuwPEEX742n5sltB20OfTRFtXbi+YnZApK6QNy/AoGBAOO4L0tYcvlcyUsPdsoK
+jWjdq1Wk7QrmASFc8dK9wHpAesE59i6Rs0CosLpSfgBNUS2WzFUhoI83+qkkBJYT
+m1+w9V32RkSkqchp4N+cQgvlPxpvvxk1lmuSey7xgFxM0xEQJWIkj4sw7VnGZxDA
+RzRNVOeD50tV++05DjKF+UyDAoGBAMIFhnQx7Eb8ebVKR+lx4TPm9m3+FK3KcHh3
+oI1+twvIqC1VUq+uxJ3w3R3ln48jRz9vOmeVdFe0b6Pf58G7oBAa0pdGfZmgQMBF
+mnEKZ+1ahuSfQVTf9N10Z5zl79x0OteWMFf5HuC5x/Lb+TmGZVW9Sbk523s6bQLl
+du0DXWL/AoGAZeXq7+ye68H9ti/oMhD/Nj7gYl03Ogj+ImtHJK12oOS9JoOWflsk
+a5yJd7pOn5wdgcUkXzFjWBUSoyg7yu/PKGk/xNSptnEEyurfpJE5gCfuOKioy6sz
+ztEdg5nYAFgQk7kZr/Wi9wv+jd6yfTsVj86SqML7m2uA/081AjXAh4M=
+-----END RSA PRIVATE KEY-----
diff --git a/sxc/10.0/xc0/traefik/certs/root-ca.crt b/sxc/10.0/xc0/traefik/certs/root-ca.crt
new file mode 100644
index 0000000..87961ef
--- /dev/null
+++ b/sxc/10.0/xc0/traefik/certs/root-ca.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDKzCCAhOgAwIBAgIUcJCX7Sgg1YULNCu0XBsaGSDKfz0wDQYJKoZIhvcNAQEL
+BQAwJTEjMCEGA1UEAwwaQ29tbWVyY2UgQ29udGFpbmVyIFJvb3QgQ0EwHhcNMjAw
+NTEzMTkxNzU0WhcNNDcwOTI5MTkxNzU0WjAlMSMwIQYDVQQDDBpDb21tZXJjZSBD
+b250YWluZXIgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+AKPbYZ88P5LfBRIJkYKrObc6fJw/rpTV3wcnYRlNTVeIppbpNocoyTWr37+5N7fC
+Hx23nusA8TlGFkW1gkvHpCBUhab/XsS8dZ60o0MaZLUfQOzY5SxZ4fDNPTA54RC2
+8N14cop5jzzT+p3btiJyOs4alaq7UxNx9u27Ltha1U9umqCcUO3xK1jkP+L9JAEH
+ghekAUmDVvEYDvVki0tiKRHISuzj16AAQ7zyoE7wSosR350oyxw84+OKi/SE5Up0
+RqB7PkdppRJyc+YD+Cyceh9vKU/pJi+9jM6/Ux2g94C3udj9V8vGM+A660X6sdUI
+6tUV5MO/3Wa4AIsUiP9UhnMCAwEAAaNTMFEwHQYDVR0OBBYEFOh994nrx+ICay6y
+Nxe8kyh31EIrMB8GA1UdIwQYMBaAFOh994nrx+ICay6yNxe8kyh31EIrMA8GA1Ud
+EwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAFayI72b8OhPm3jGlfpxQoFp
+0TmGTRXMD1VYWcIn1q6wNYkC3ZXB/NNLBf0Xkc5Cb/+bsurmCSdxcBbLFi20MojE
+ObDj+TJa1UormQljkOfBFX98UIiuXFIWDlP0KtoGhQB66p2sZzLS9wQCjBvbSpmB
+Zrtqls4D/Fm66borUUMa6mrO0kuPM4dGNZIFFGcaZzlJZ4RuFMUv6rdOFgLla6LQ
+4LyGGBvnZCVv2NMJ8gh1+saJdeLO9GbnMJK5X/QoSx1yw+zxsIdsyc9FxZtcXBB5
+SqHLGsRt9rLP4kzpjV5IqcztRCjBxOUedaacBMdV+JCBrOeREvTZfz6jGVjNf7I=
+-----END CERTIFICATE-----
diff --git a/sxc/10.0/xc0/traefik/certs/root-ca.key b/sxc/10.0/xc0/traefik/certs/root-ca.key
new file mode 100644
index 0000000..e98ea2d
--- /dev/null
+++ b/sxc/10.0/xc0/traefik/certs/root-ca.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEpQIBAAKCAQEAo9thnzw/kt8FEgmRgqs5tzp8nD+ulNXfBydhGU1NV4imluk2
+hyjJNavfv7k3t8IfHbee6wDxOUYWRbWCS8ekIFSFpv9exLx1nrSjQxpktR9A7Njl
+LFnh8M09MDnhELbw3XhyinmPPNP6ndu2InI6zhqVqrtTE3H27bsu2FrVT26aoJxQ
+7fErWOQ/4v0kAQeCF6QBSYNW8RgO9WSLS2IpEchK7OPXoABDvPKgTvBKixHfnSjL
+HDzj44qL9ITlSnRGoHs+R2mlEnJz5gP4LJx6H28pT+kmL72Mzr9THaD3gLe52P1X
+y8Yz4DrrRfqx1Qjq1RXkw7/dZrgAixSI/1SGcwIDAQABAoIBADkD2RAjUqu0VntU
+QQGKuuZ6v2lO71xynsxKc4ruTv8qWW0hcQvOsVSvnYeE11JlhZY9klqLVWRscsuG
+wPPFX+KwBmF5cmxad0Ll7/klce1kFp9TSUsJa4jyoVvqh9ndDirCAnkUmza7O/U5
+wkJyJOwabAGgdOPLP/SwsTgvQxIEB5UuRkh/WT1EAivSgKmy42/7hncbRFxY3pFO
+gUxbB9Jwm9lciwm0B7IFeDBPOjErHzN12LI7Ib7u+EDwjj89tROreIauEB0iznHi
+SJnCg/C0TsAUlMLdYg+n0Q58McxQCEBCqwW+qHr+me9RZRkzJzjmFlK6KZD5QwBM
+LJk6cuECgYEA2b4sWoKmX5DrpONXVE82FWEQXqjIFEZNzLhq2ccOgEhv+t424CfW
+l8hLAYn+3o4+61pgtEK0sml96gMUKY0B/OoRcBzjus7WqKAk95YG4J0j+5f4Vir/
+j3+ZbbhltwTVbFtuvzg7ZO88wZfaupIkBuPPMuiaQD5xRiP4MuJt2pcCgYEAwKV7
+MddnVfHxVld5IEA3B9NfP88CK6Kxh1JWe0kBH39K806/9O31HithUer7z8K/diPr
+ptt2/sGp8RxQosaEg/umVZLaFFk4PuTekfz58SBPOeIdCLGwmPsn3SbvXDqpiYY8
+VtTnd1B4StfNvcEpluLNXy2KgsNjpZgzUT9aeoUCgYEAvLYcPKlkxgiUoghCZJhu
+GCNSi6eeGCxCOz5NpMbnI3kkS/kQ+D6utkdp8kCF+p6vm0xt6WyyrLnO3eSjMcu6
+wFagnFj9aabf1a9NuqJ0/XBTgjbYjN2hNd3xvG0HApKW4d1wYxu6JiVNs78HW5FS
+1gHUTpvXK/yyMYb1Eiy55qsCgYEAhevD648ZuAZ8RhCDFKdvWhJXuaz3jkwIa9ES
+a5wBmtrLyL5q9SLi7nkrq13WdcSlgsRP0mvomgsZT5Lmf3HPt0yeggiXb+PiFN7X
+1tbtDfHvAYcttdiIsqCOQtAJP61MJF1b3uUcj7YyGZ1R2mLIvaqnKE4pZuPbhsd6
+jTWkeV0CgYEAtj6XiBVzG91ebHy3h1LR4/TlVtx6Vi9spSrBdVE/XcSe+5/wTMZ0
+L0o75C8wIVLEWsKyX/t4iB30pERiEizMTc015QY98r1/s31iazILJhXP9MKaJIXX
+q00PwmG8wx/ayX7az+o3hZ8dSuQKrAQv3IT+hvD9Wtq9BLiFnyDbdrY=
+-----END RSA PRIVATE KEY-----
diff --git a/sxc/10.0/xc0/traefik/certs/shops.localhost.crt b/sxc/10.0/xc0/traefik/certs/shops.localhost.crt
new file mode 100644
index 0000000..26954d2
--- /dev/null
+++ b/sxc/10.0/xc0/traefik/certs/shops.localhost.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDAzCCAeugAwIBAgIUawlhmAcg8CLeyvsaytNmKthOIAgwDQYJKoZIhvcNAQEL
+BQAwJTEjMCEGA1UEAwwaQ29tbWVyY2UgQ29udGFpbmVyIFJvb3QgQ0EwHhcNMjAw
+NTEzMTkxNzU2WhcNMzAwNTExMTkxNzU2WjAaMRgwFgYDVQQDDA9zaG9wcy5sb2Nh
+bGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCyZTCLejP58kcD
+T5H7mk0rKZIhuHSHCqsaBcKrOzFlY7lCTbiRcWmgLjjtMreU3rQ3p3XMkhJVel0S
+UpsO9hDakAz3B9DB2SsmYH1o2qXsrS3iPooHUKaYZuZgcy/hoZ5aDPthGSCOq7dH
+KX/V+J2NZHAz74IUP2p1dRFMp6aUM24LU6ZRDxUo3K/qpT6ncAfCMFQxCcvOeBld
+pWIRHBN6W9RWa29uJIjLf+ikjc8zZUl83GY+nG5e0EtO71C2q9sOtAVdgRjSRPpq
+wHjLykAvotd+IWsZKqYFX6vS/T7OaQa+/IrXmbD0iPRtvzN2mK7dTU1wXcVHgkMI
+CBkzxNcnAgMBAAGjNjA0MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgXgMBoGA1UdEQQT
+MBGCD3Nob3BzLmxvY2FsaG9zdDANBgkqhkiG9w0BAQsFAAOCAQEAZXzALYzr5a0P
+Af5bgY4OwmoNzBtmwwAw8CJu3HjcqssZmz+DRSbsq7fcpKtin2X85HnU1x1sPjt5
+Ej+PIlFeiRexk1NXnn2wJhPfZODTR/Zd3c9rvmlmoH1/r0Uj0v3F60FkM2G8Ico9
+j3TPWZ1YIEpt+IlDLsIjZGJ3MQ+RFvzBaWtIJEiHRSB5NqqQn9C5+QKFt2Ieoqrs
+Hu6MW0Oct882ooUTzoQcibCOE5muA8y+vK5KXm8SE7n0Eej6wG750YfgUB/m9Ing
+9HAQGrW/WIWUktlcmpLK0ywvv8lQT3lhEQy9RPj4bt+ZkMdp/FGI2bbaG6rZ/gtC
+oSPqhKdGxA==
+-----END CERTIFICATE-----
diff --git a/sxc/10.0/xc0/traefik/certs/shops.localhost.key b/sxc/10.0/xc0/traefik/certs/shops.localhost.key
new file mode 100644
index 0000000..3c9852c
--- /dev/null
+++ b/sxc/10.0/xc0/traefik/certs/shops.localhost.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAsmUwi3oz+fJHA0+R+5pNKymSIbh0hwqrGgXCqzsxZWO5Qk24
+kXFpoC447TK3lN60N6d1zJISVXpdElKbDvYQ2pAM9wfQwdkrJmB9aNql7K0t4j6K
+B1CmmGbmYHMv4aGeWgz7YRkgjqu3Ryl/1fidjWRwM++CFD9qdXURTKemlDNuC1Om
+UQ8VKNyv6qU+p3AHwjBUMQnLzngZXaViERwTelvUVmtvbiSIy3/opI3PM2VJfNxm
+PpxuXtBLTu9QtqvbDrQFXYEY0kT6asB4y8pAL6LXfiFrGSqmBV+r0v0+zmkGvvyK
+15mw9Ij0bb8zdpiu3U1NcF3FR4JDCAgZM8TXJwIDAQABAoIBAH6GyoGCcO7r6XXt
+r6p17Bma6GxGOU+2P1i7kTCFUSmKK1FdcnSlrbbQUcvaVt6dfdCjUyd+ysYZfX2L
+XTKlT5rU5H0o6+UxNCuJ8Ci4O0q8IXj/xkId76rUAL2TtPgg+wD/iCN8AN1v6RPt
+2R9Xr9ciz3nme6oEuGsKVvS5S6p8ByiIRHqQ9fgG2pqO9DZW+V76rAdvfUeZ83Fd
+vDqfmXO9XZVicnhlaNbxT9l4Spbep3GKOmqppU7RZaPr5Ja7SqMaZ5Q618XkIlPF
+l15wLSti+zygjvNUqYn+RCGVX1gfzQ9Uo5Zv+Rxr+iNg4XajdCggzwuy1Rq2wbb+
+EoVIqCECgYEA6toRCKLUZeDYAmzb2AyWWxaw/k9yIHVVkYA4HXObtYOr+JM4ZErY
+9j3DZcJiWcTX81PexxxPM3Mq6Xy1PFj7lXLR2Lfi9mKCXrV0uTJV+1lwK3qBw9N0
+MPdJrhRtzlSfC8QDlkCRYgXHn9ZEKZ7mGywY/P0IECKhhuDY9t1zUN8CgYEAwnWn
+1p+mAETwx/azdGN4pRHe6D+H+uGxOXmO5iumsupB69nvKKR4DimILK/JSuV/FNcK
+cX5uUcYrRzOfzOh6emEzZTdxdSTviYuBX9AMDtfv/p4v/xtOmlZVn88kAToSYveG
+xMo17ItZhZcOcqGNv9To41JsL1Bo9I/1yuofWrkCgYBd35R3cz6bCmjNb13g2gcv
+mb5dqLvhpYTyh+HmQ9O1llAjKBWeYRygMMft4OkXIMuBA8FErVgrJJm+go6e9KJ7
+dk3S5o3eFjouSTHC5Q/hTDq95lYARIFpIS9eWeQaWVDJjywv3tc96zmD9k2ApXcs
+3U+PsESMzorqMu4GnzX82QKBgQCcSLDmZhKk/sNBAn3Bmbw5dj5fC8g+kqq7lX2K
+cSSdgHYQlmuGj4BJaYme2Hx/rChRWG51PnZtVEYuCEhzB5h/yKTkwQV3b4LwWWVV
+2sAGIfgo+3t5nLm0gpR4RqMaNVDXpzXx7M4f2PLO0dNzv3FL7lJpeDGoaQihHR4e
+wcEHSQKBgCx/xOEQBP7OKyFWO+ZcpVsOgvYRLEuHBXp1o7BEfNmqIRn1v7hd5k4F
+y7jig1rux/JnkVhv8ztyUEFysbCwr0HQQS7rmTMbBMPJuDbuwVFxcgbQFNLvWbJP
+Wmo+KxOVrFIHSjp4YSHKIB6bwaVKgnKtEG1S2lgR8+N9T5iePlJe
+-----END RSA PRIVATE KEY-----
diff --git a/sxc/10.0/xc0/traefik/certs/xc0cm.localhost.crt b/sxc/10.0/xc0/traefik/certs/xc0cm.localhost.crt
new file mode 100644
index 0000000..f00b094
--- /dev/null
+++ b/sxc/10.0/xc0/traefik/certs/xc0cm.localhost.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDAzCCAeugAwIBAgIUawlhmAcg8CLeyvsaytNmKthOIAQwDQYJKoZIhvcNAQEL
+BQAwJTEjMCEGA1UEAwwaQ29tbWVyY2UgQ29udGFpbmVyIFJvb3QgQ0EwHhcNMjAw
+NTEzMTkxNzU1WhcNMzAwNTExMTkxNzU1WjAaMRgwFgYDVQQDDA94YzBjbS5sb2Nh
+bGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtQ/hPKABLc8VU
+IziM9S3OLHc4Keho3laSTWMxXlI9ljknkoEiahwh+vHiDEEwnDzhBydPpRYtmfd8
+IkAZBukT/g3uCO0bXyCylERqxudcze0xQod+xlZotvizKrQs4RRFsTcnOvdpLKYz
+iWSy4wIchR0k0BuZ5LPr9cYTRcnswBMg2GIvST+luv48O4WRgCNwZ2Z9IsueuYIp
+vN3ZHuETo/rzF2x7XHjlnDwIaD+e6mEsRhysjWE2GosLUYL6YLCr9JWYSR2Bk2L9
+ylEfPYnkHRuveNWjDtPoke3HGp5s5CGBYBHzySwI8uUGoteCfxz+PqmKZHCqhy9B
+kR8QV+gVAgMBAAGjNjA0MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgXgMBoGA1UdEQQT
+MBGCD3hjMGNtLmxvY2FsaG9zdDANBgkqhkiG9w0BAQsFAAOCAQEAI7hGUnBg+9uA
+BAVHuvB+LqmS2q4OTdRu98quBrUEiIqP3tGmgoeLiZW4xZQhlfUrAbYliS/TzgzO
+xWa+KB37GcPd/ElqvzYe7uBk9xjYSrPw3BmDBh2G4+QoazN1D5xKV9DnxnkymBST
+8lOrqTcf+0GDSgGh6Ffgs75mQPZL5D60HYw7t2XUm32vcHvA4jcftQNZdBl2OQNd
+DVoWyKa8LKu2k9p2JFl15XpKRVRh41yDH3JdCbvYdEqRY9nT8/J6JGeWHTcPyeQl
+KjoyUx4f09wvuEQHWFcZexGpbKp9zigWDxy1qRNPQKTIjDhrWx8P0Zxbc3KOX2si
+Uy1euylnOg==
+-----END CERTIFICATE-----
diff --git a/sxc/10.0/xc0/traefik/certs/xc0cm.localhost.key b/sxc/10.0/xc0/traefik/certs/xc0cm.localhost.key
new file mode 100644
index 0000000..e734712
--- /dev/null
+++ b/sxc/10.0/xc0/traefik/certs/xc0cm.localhost.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEArUP4TygAS3PFVCM4jPUtzix3OCnoaN5Wkk1jMV5SPZY5J5KB
+ImocIfrx4gxBMJw84QcnT6UWLZn3fCJAGQbpE/4N7gjtG18gspREasbnXM3tMUKH
+fsZWaLb4syq0LOEURbE3Jzr3aSymM4lksuMCHIUdJNAbmeSz6/XGE0XJ7MATINhi
+L0k/pbr+PDuFkYAjcGdmfSLLnrmCKbzd2R7hE6P68xdse1x45Zw8CGg/nuphLEYc
+rI1hNhqLC1GC+mCwq/SVmEkdgZNi/cpRHz2J5B0br3jVow7T6JHtxxqebOQhgWAR
+88ksCPLlBqLXgn8c/j6pimRwqocvQZEfEFfoFQIDAQABAoIBAQCivD5Sim2McJYc
+KmCI9BcrmFP5alMhfAKvswPBcKeptJjF9DJZknQN7laVS5FHCNedO0zO321vMzdh
+XgH5/6WW431N3xBkLvrU/7Eq4NqZLcjkBWqhxcOO4pvAHBHSPSz/MC1vKVELdaY8
+rYTpB5IKG3R+CQCDkGz06Ig7vcakF06mXTMTAVIXfUcjMwHOhkW5Y4mjxsW1Y962
+KZuqAp3ifimnUypXfe5ETipaM/C08G2K0OR6nDbeyp3oUYImkAhPBrzD57SlWADu
+hD29fr9By1bj9F/Zta5poAIv3tzjswvBks4o4B6qDB9LFdFv17jy+sRCLMlV78GG
+wabVdU4ZAoGBAOLrwhxtZfb/PDiVhSTwunJgDFKdufu4ECNReSStGF1L2CjTBHTw
+DyGuwhxSJgtPl9ey0+ileLs76rjZfEETsqfmyNNYU62jz7qt2NhTzTAMmNL4fUH0
+Ljn3jarEepLNaBlEHd+fqHP8xb8g4fOml17lnqjlYn2kPJ8A28MLH29bAoGBAMN4
+BZKOQcmGSFhvahb92WVOTV+vVIslA6tPpEc6BfdaYeAG0UpL07vmxhmWpBxM/RoT
+bv7WNcn9V2cuVWjLmJIJPYKS2lwj4aizeGl9p/pZoZOrmTw0EuYvrHNSNNuX1RG6
+OXBfh835DNxWVwaneQLqYxGZ0NFIvyqBjuYxVpFPAoGAfkQ3T8Aj86uUY9v3KVX2
+OTxuvu3bFlEWUcC9CwZyPz+7uQOqQDNwCAsJId8oIjUYxcJRHewtYOn3MwJ5nHCM
+gdbuOoO0lDNJnJOtzLncu/bWdtYkRLXNnx27q6EGn3dCjISVpuBdSKUHl9GBSSWS
+pxBYF50ED+t6e/NrVX1z8W8CgYAtHIUEtsoeDVyi9EuitME4bSLUQ22ak1dOcRnz
+ykNYO8a84jXpFKjwA6mSfD6xvV7oZrXGIH/Xdx111a6med5jTbihauz0ON+6hHj0
+t6hN0ePFZeP+jfISp8v/7Wf/igIFjln1QkbgVWsPaum4wmveLWPhywLzWfusfqwR
+Gi/lZwKBgCr1glq06W0ZDNf6e0fRYREWuZPz/ETUaWV51nMZ+Iy5LPmDnbeO1kYY
+d6RgABZFJhMLM22u98q5u5wbmzBx5LJcjqxrXJw57Uw2Zgs5oO/T45lirJRaGk1y
+jaRUbF+x1+MyjYNZSMVz2v30xHUeu/Y724UOB0tvV/WAGbCNG1z9
+-----END RSA PRIVATE KEY-----
diff --git a/sxc/10.0/xc0/traefik/certs/xc0id.localhost.crt b/sxc/10.0/xc0/traefik/certs/xc0id.localhost.crt
new file mode 100644
index 0000000..afbbb70
--- /dev/null
+++ b/sxc/10.0/xc0/traefik/certs/xc0id.localhost.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDAzCCAeugAwIBAgIUawlhmAcg8CLeyvsaytNmKthOIAYwDQYJKoZIhvcNAQEL
+BQAwJTEjMCEGA1UEAwwaQ29tbWVyY2UgQ29udGFpbmVyIFJvb3QgQ0EwHhcNMjAw
+NTEzMTkxNzU1WhcNMzAwNTExMTkxNzU1WjAaMRgwFgYDVQQDDA94YzBpZC5sb2Nh
+bGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDMJDwhZHBVkhx0
+kBPbZNC/l84VtpipBGKyJEN7nV0f8LP/r5J3rzkHT7aqH6iTbrikq97NhDj3//88
+Y+0sh/g1IC0J3epJw2ZNsnpsQl1yOAPe9ktwAlhdqcVwGccvJCz3pNLjjfyVVwxA
+xqs3Wn8juSTQuwivgtc5Goo3+jxh85xzeLRA1zWnptiGulzqC3LuUTBbL7qtIM0T
+ark8Mc7Dvx9www+Sgh6zHi4RnqfSE9pfqoo/aHxyxu+Vzj8+G5DkNBjXKbb8l7Qv
+nuanrSsXGN4IFyy/ap5vmxp2yrePK5KWvDMwBhuFUeam8QqOfGR8Jb/AYyWscHQQ
+Mq/JdTF5AgMBAAGjNjA0MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgXgMBoGA1UdEQQT
+MBGCD3hjMGlkLmxvY2FsaG9zdDANBgkqhkiG9w0BAQsFAAOCAQEAh8j+sfIGzORx
+IBSbidk4i5fQhopJl0G6ZSrZNVYI5ogG++ArcbaVhvvxJpQssZLeny/c2OpAVMyS
+OTcTQh7w91I2QwAH+2K1om0/E4goFpY9axm2Kz6bA9Z4Ia5cP39wq46clCkpE1I9
+i3K7h9HTDs6VdJ21bFOw9+fSTwPhqbpqV6DLm7yFjtGDIA4om/iGLSwkjx547oKK
+aQWo2DBrlp9D1Q2t025ciys3Gc5Gff7LzfzXmTqWFgPLF3BIOAl7iS6DRKEUQA+q
+qRz5+y44kg2xwANcSBBLGX6F+XIzi1QKgYlI3A6AtWIquiKsp8L/O5x+JZFFfDkb
+yHNw7Af75w==
+-----END CERTIFICATE-----
diff --git a/sxc/10.0/xc0/traefik/certs/xc0id.localhost.key b/sxc/10.0/xc0/traefik/certs/xc0id.localhost.key
new file mode 100644
index 0000000..b0b31b8
--- /dev/null
+++ b/sxc/10.0/xc0/traefik/certs/xc0id.localhost.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAzCQ8IWRwVZIcdJAT22TQv5fOFbaYqQRisiRDe51dH/Cz/6+S
+d685B0+2qh+ok264pKvezYQ49///PGPtLIf4NSAtCd3qScNmTbJ6bEJdcjgD3vZL
+cAJYXanFcBnHLyQs96TS4438lVcMQMarN1p/I7kk0LsIr4LXORqKN/o8YfOcc3i0
+QNc1p6bYhrpc6gty7lEwWy+6rSDNE2q5PDHOw78fcMMPkoIesx4uEZ6n0hPaX6qK
+P2h8csbvlc4/PhuQ5DQY1ym2/Je0L57mp60rFxjeCBcsv2qeb5sadsq3jyuSlrwz
+MAYbhVHmpvEKjnxkfCW/wGMlrHB0EDKvyXUxeQIDAQABAoIBAQClFXBi+Jw3Nu83
+/ANy2jZNme+Yc49Erz05HkZMQte6KqcFT/A8RUDy/q2TKgLjJxi+YhbNT+3Z7/Vx
+2sVDy7kXDSwe3IzIlfG3R2vk/E4hPdcziS08KUlYhSAbJV2Ea9bJdUrtpjbqdfh8
+saxoGRDTzLdO7NF7TW3KygGYfw4xjqPZPvraRrAF3SDD8/6zWXA7Za9n9MSpDPcN
+V9SCqAPQVqHqkHaI2eZUNMbtuh8HAL2/BNgnkkmYEa1tMccPIl3xSUr5vD0mfl+1
+Z9xUZStTD3dp6OZA0Xxj8ynm6hWYhXfwoKC5OS7ZCADBwD4ZUsEvW2xighO33LKP
+b9LtKKBZAoGBAOkajwTNDX9nOofqSdb6NYMX4aoVCN0mCRUMqMD9T2HT5VT2JZNa
+xL88FCRsZ/cHsOwfdGDYNDg39jkVGhODx1CJemwEUFsiDWClgzl3USGgxXdjqccR
+7p/O4drI3SYkGWr2SmgvLnZgcQV67BICltYoENUUopItVriC1ANK4HabAoGBAOAx
+amyGuaeBtul/LGlr6G322Qt/VTlpchW+Z3V8MtvNSE7/zlWT/PHOLvSfBBpx1lMZ
+uGb1mfMqLGBffncsgKWeti04Np6MQvsTvy0bBXfpkKDhWLGED3NLLg636FlJUiBB
+T/vH9dqYjVMpBQ79j5Ujg6PC6p5deC8ESqyf/W97AoGAScwKsy5ns4nu0dCuh8y2
+3EXXP41hPQIppexYEKEhXItE81zqEHiQCSrwBYf8cgyRSm+63F4WSiYNYYz4sGzr
+0Od1RnUnK3LgYVSE8tB/cvH/EgkPWuKmdRl+D1HAEa8kDOTkMY+eWgO2RFHiIuGG
+902/5nWd8kFATzG8BT7TSTkCgYALd3uSAXINdzz7xF1pJvPEbBO92s1pGlOTeSGh
+iLCxPVatc7gB+Ie/dmRAbsGu+JOVvIMKARXWshmC9F9riQMrdWqr9WwVv+bNIL1u
+eStWbsPO9reqnK6NnxLD/fQMXQuuSqjkn92bSKIx1q9DjQSDBEX/YkDNyMoU3YtU
+OPqlcQKBgBQd6z1LWR3Edj5MgQU+q07n8IosTl9R/sWRJGoPM83OHBXlrXZ4v5Mv
+AKW84RNLn0sI/UpssI+qOgmLAXalKeldg5uRCVjxzOxh7enn6X2NQKQhXrBsqvax
+aDhw4Dmi9FFawLx5dAHfEqShaCkjzKtNN1u0rebpMDgBpaRk7my3
+-----END RSA PRIVATE KEY-----
diff --git a/sxc/10.0/xc0/traefik/config/dynamic/certs_config.yaml b/sxc/10.0/xc0/traefik/config/dynamic/certs_config.yaml
new file mode 100644
index 0000000..ba49a85
--- /dev/null
+++ b/sxc/10.0/xc0/traefik/config/dynamic/certs_config.yaml
@@ -0,0 +1,16 @@
+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
+ - certFile: C:\etc\traefik\certs\ops.localhost.crt
+ keyFile: C:\etc\traefik\certs\ops.localhost.key
\ No newline at end of file
diff --git a/sxc/10.0/xc0/xconnect/keep.txt b/sxc/10.0/xc0/xconnect/keep.txt
new file mode 100644
index 0000000..e69de29
diff --git a/sxc/10.0/xc1-cxa/.env b/sxc/10.0/xc1-cxa/.env
new file mode 100644
index 0000000..78e0439
--- /dev/null
+++ b/sxc/10.0/xc1-cxa/.env
@@ -0,0 +1,55 @@
+BASE_SITECORE_DOCKER_REGISTRY=scr.sitecore.com/base/
+
+XP_SITECORE_DOCKER_REGISTRY=scr.sitecore.com/sxp/
+XP_SITECORE_TAG=10.0.0-ltsc2019
+
+MODULES_SITECORE_DOCKER_REGISTRY=scr.sitecore.com/sxp/modules/
+SPE_SITECORE_TAG=6.1.1-1809
+SXA_SITECORE_TAG=10.0.0-1809
+
+XC_NONPRODUCTION_SITECORE_DOCKER_REGISTRY=scr.sitecore.com/sxc/nonproduction/
+XC_SITECORE_DOCKER_REGISTRY=scr.sitecore.com/sxc/
+XC_PACKAGES_TAG=10.0.0-ltsc2019
+
+TRAEFIK_IMAGE=traefik:v2.2.0-windowsservercore-1809
+TRAEFIK_ISOLATION=default
+
+ISOLATION=default
+
+CD_HOST=xc1cd.localhost
+CM_HOST=xc1cm.localhost
+ID_HOST=xc1id.localhost
+
+AUTHORING_HOST=authoring.localhost
+SHOPS_HOST=shops.localhost
+MINIONS_HOST=minions.localhost
+OPS_HOST=ops.localhost
+
+BIZFX_HOST=bizfx.localhost
+
+SQL_SA_PASSWORD=Password12345
+SITECORE_ADMIN_PASSWORD=Password12345
+
+SITECORE_MASTER_DB=Sitecore.Master
+SITECORE_CORE_DB=Sitecore.Core
+XC_GLOBAL_DB=SitecoreCommerce_Global
+XC_GLOBAL_DB_TRUSTED_CONNECTION=false
+XC_SHARED_DB=SitecoreCommerce_SharedEnvironments
+XC_SHARED_DB_TRUSTED_CONNECTION=false
+
+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_IDSECRET=
+SITECORE_ID_CERTIFICATE=
+SITECORE_ID_CERTIFICATE_PASSWORD=
+SITECORE_LICENSE=
\ No newline at end of file
diff --git a/sxc/10.0/xc1-cxa/cd/Dockerfile b/sxc/10.0/xc1-cxa/cd/Dockerfile
new file mode 100644
index 0000000..62a9061
--- /dev/null
+++ b/sxc/10.0/xc1-cxa/cd/Dockerfile
@@ -0,0 +1,20 @@
+# escape=`
+
+ARG BASE_IMAGE
+ARG SXA_RESOURCES_IMAGE
+
+FROM ${SXA_RESOURCES_IMAGE} AS sxa_resources
+
+FROM ${BASE_IMAGE}
+
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+
+COPY --from=sxa_resources C:\module\cd\content C:\inetpub\wwwroot
+COPY --from=sxa_resources C:\module\tools C:\module\tools
+
+COPY wdp/ C:/inetpub/wwwroot
+COPY xdts/ C:/inetpub/wwwroot/App_Data/SxaXdt
+
+RUN 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.0/xc1-cxa/cd/xdts/Web.config.xdt b/sxc/10.0/xc1-cxa/cd/xdts/Web.config.xdt
new file mode 100644
index 0000000..aa39a98
--- /dev/null
+++ b/sxc/10.0/xc1-cxa/cd/xdts/Web.config.xdt
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sxc/10.0/xc1-cxa/cm/Dockerfile b/sxc/10.0/xc1-cxa/cm/Dockerfile
new file mode 100644
index 0000000..a4217b5
--- /dev/null
+++ b/sxc/10.0/xc1-cxa/cm/Dockerfile
@@ -0,0 +1,26 @@
+# escape=`
+
+ARG BASE_IMAGE
+ARG SPE_RESOURCES_IMAGE
+ARG SXA_RESOURCES_IMAGE
+
+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
+
+FROM spe AS sxa
+
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+
+COPY --from=sxa_resources C:\module\cm\content C:\inetpub\wwwroot
+COPY --from=sxa_resources C:\module\tools C:\module\tools
+
+COPY wdp/ C:/inetpub/wwwroot
+COPY xdts/ C:/inetpub/wwwroot/App_Data/SxaXdt
+
+RUN C:\module\tools\Initialize-Content.ps1 -TargetPath C:\inetpub\wwwroot; `
+ Remove-Item -Path C:\module -Recurse -Force;
diff --git a/sxc/10.0/xc1-cxa/cm/xdts/Web.config.xdt b/sxc/10.0/xc1-cxa/cm/xdts/Web.config.xdt
new file mode 100644
index 0000000..aa39a98
--- /dev/null
+++ b/sxc/10.0/xc1-cxa/cm/xdts/Web.config.xdt
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sxc/10.0/xc1-cxa/commerce.build.yml b/sxc/10.0/xc1-cxa/commerce.build.yml
new file mode 100644
index 0000000..bad705b
--- /dev/null
+++ b/sxc/10.0/xc1-cxa/commerce.build.yml
@@ -0,0 +1,51 @@
+version: "3.7"
+services:
+ mssql:
+ image: sitecore-xc1-mssql
+ build:
+ context: ./mssql
+ dockerfile: ./standalone/Dockerfile
+ args:
+ BASE_IMAGE: xc1-mssql:latest
+ SPE_RESOURCES_IMAGE: ${MODULES_SITECORE_DOCKER_REGISTRY}spe-assets:${SPE_SITECORE_TAG}
+ SXA_RESOURCES_IMAGE: ${MODULES_SITECORE_DOCKER_REGISTRY}sxa-xp1-assets:${SXA_SITECORE_TAG}
+ mssql-init:
+ image: sitecore-xc1-mssql-init
+ build:
+ context: ./mssql
+ dockerfile: ./init/Dockerfile
+ args:
+ BASE_IMAGE: xc1-mssql-init:latest
+ SPE_RESOURCES_IMAGE: ${MODULES_SITECORE_DOCKER_REGISTRY}spe-assets:${SPE_SITECORE_TAG}
+ SXA_RESOURCES_IMAGE: ${MODULES_SITECORE_DOCKER_REGISTRY}sxa-xp1-assets:${SXA_SITECORE_TAG}
+ solr:
+ image: sitecore-xc1-solr
+ build:
+ context: ./solr
+ dockerfile: ./standalone/Dockerfile
+ args:
+ BASE_IMAGE: xc1-solr:latest
+ SXA_RESOURCES_IMAGE: ${MODULES_SITECORE_DOCKER_REGISTRY}sxa-xp1-assets:${SXA_SITECORE_TAG}
+ solr-init:
+ image: sitecore-xc1-solr-init
+ build:
+ context: ./solr
+ dockerfile: ./init/Dockerfile
+ args:
+ BASE_IMAGE: xc1-solr-init:latest
+ SXA_RESOURCES_IMAGE: ${MODULES_SITECORE_DOCKER_REGISTRY}sxa-xp1-assets:${SXA_SITECORE_TAG}
+ cd:
+ image: sitecore-xc1-cd
+ build:
+ context: ./cd
+ args:
+ BASE_IMAGE: xc1-cd:latest
+ SXA_RESOURCES_IMAGE: ${MODULES_SITECORE_DOCKER_REGISTRY}sxa-xp1-assets:${SXA_SITECORE_TAG}
+ cm:
+ image: sitecore-xc1-cm
+ build:
+ context: ./cm
+ args:
+ BASE_IMAGE: xc1-cm:latest
+ SPE_RESOURCES_IMAGE: ${MODULES_SITECORE_DOCKER_REGISTRY}spe-assets:${SPE_SITECORE_TAG}
+ SXA_RESOURCES_IMAGE: ${MODULES_SITECORE_DOCKER_REGISTRY}sxa-xp1-assets:${SXA_SITECORE_TAG}
\ No newline at end of file
diff --git a/sxc/10.0/xc1-cxa/docker-compose.build.yml b/sxc/10.0/xc1-cxa/docker-compose.build.yml
new file mode 100644
index 0000000..f622d3a
--- /dev/null
+++ b/sxc/10.0/xc1-cxa/docker-compose.build.yml
@@ -0,0 +1,51 @@
+version: "3.7"
+services:
+ mssql:
+ image: sitecore-xc1-mssql
+ build:
+ context: ./mssql
+ dockerfile: ./standalone/Dockerfile
+ args:
+ BASE_IMAGE: ${XC_NONPRODUCTION_SITECORE_DOCKER_REGISTRY}xc1-mssql:${XC_PACKAGES_TAG}
+ SPE_RESOURCES_IMAGE: ${MODULES_SITECORE_DOCKER_REGISTRY}spe-assets:${SPE_SITECORE_TAG}
+ SXA_RESOURCES_IMAGE: ${MODULES_SITECORE_DOCKER_REGISTRY}sxa-xp1-assets:${SXA_SITECORE_TAG}
+ mssql-init:
+ image: sitecore-xc1-mssql-init
+ build:
+ context: ./mssql
+ dockerfile: ./init/Dockerfile
+ args:
+ BASE_IMAGE: ${XC_SITECORE_DOCKER_REGISTRY}xc1-mssql-init:${XC_PACKAGES_TAG}
+ SPE_RESOURCES_IMAGE: ${MODULES_SITECORE_DOCKER_REGISTRY}spe-assets:${SPE_SITECORE_TAG}
+ SXA_RESOURCES_IMAGE: ${MODULES_SITECORE_DOCKER_REGISTRY}sxa-xp1-assets:${SXA_SITECORE_TAG}
+ solr:
+ image: sitecore-xc1-solr
+ build:
+ context: ./solr
+ dockerfile: ./standalone/Dockerfile
+ args:
+ BASE_IMAGE: ${XC_NONPRODUCTION_SITECORE_DOCKER_REGISTRY}xc1-solr:${XC_PACKAGES_TAG}
+ SXA_RESOURCES_IMAGE: ${MODULES_SITECORE_DOCKER_REGISTRY}sxa-xp1-assets:${SXA_SITECORE_TAG}
+ solr-init:
+ image: sitecore-xc1-solr-init
+ build:
+ context: ./solr
+ dockerfile: ./init/Dockerfile
+ args:
+ BASE_IMAGE: ${XC_SITECORE_DOCKER_REGISTRY}xc1-solr-init:${XC_PACKAGES_TAG}
+ SXA_RESOURCES_IMAGE: ${MODULES_SITECORE_DOCKER_REGISTRY}sxa-xp1-assets:${SXA_SITECORE_TAG}
+ cd:
+ image: sitecore-xc1-cd
+ build:
+ context: ./cd
+ args:
+ BASE_IMAGE: ${XC_SITECORE_DOCKER_REGISTRY}xc1-cd:${XC_PACKAGES_TAG}
+ SXA_RESOURCES_IMAGE: ${MODULES_SITECORE_DOCKER_REGISTRY}sxa-xp1-assets:${SXA_SITECORE_TAG}
+ cm:
+ image: sitecore-xc1-cm
+ build:
+ context: ./cm
+ args:
+ BASE_IMAGE: ${XC_SITECORE_DOCKER_REGISTRY}xc1-cm:${XC_PACKAGES_TAG}
+ SPE_RESOURCES_IMAGE: ${MODULES_SITECORE_DOCKER_REGISTRY}spe-assets:${SPE_SITECORE_TAG}
+ SXA_RESOURCES_IMAGE: ${MODULES_SITECORE_DOCKER_REGISTRY}sxa-xp1-assets:${SXA_SITECORE_TAG}
\ No newline at end of file
diff --git a/sxc/10.0/xc1-cxa/docker-compose.yml b/sxc/10.0/xc1-cxa/docker-compose.yml
new file mode 100644
index 0000000..67bea08
--- /dev/null
+++ b/sxc/10.0/xc1-cxa/docker-compose.yml
@@ -0,0 +1,762 @@
+version: "2.4"
+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.web.address=:80"
+ - "--entryPoints.websecure.address=:443"
+ ports:
+ - "8080:80"
+ - "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
+ engine-ops:
+ condition: service_started
+ redis:
+ isolation: ${ISOLATION}
+ image: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-redis:${XP_SITECORE_TAG}
+ restart: unless-stopped
+ mssql:
+ isolation: ${ISOLATION}
+ image: ${XC_NONPRODUCTION_SITECORE_DOCKER_REGISTRY}sitecore-xc1-mssql:${XC_PACKAGES_TAG}
+ restart: unless-stopped
+ environment:
+ SA_PASSWORD: ${SQL_SA_PASSWORD}
+ SITECORE_ADMIN_PASSWORD: ${SITECORE_ADMIN_PASSWORD}
+ ACCEPT_EULA: "Y"
+ SQL_SERVER: mssql
+ ports:
+ - "14330:1433"
+ volumes:
+ - type: bind
+ source: c:\containers\mssql-data
+ target: c:\data
+ solr:
+ isolation: ${ISOLATION}
+ image: ${XC_NONPRODUCTION_SITECORE_DOCKER_REGISTRY}sitecore-xc1-solr:${XC_PACKAGES_TAG}
+ ports:
+ - "8984:8983"
+ restart: unless-stopped
+ volumes:
+ - type: bind
+ source: c:\containers\solr-data
+ target: c:\data
+ id:
+ isolation: ${ISOLATION}
+ image: ${XC_SITECORE_DOCKER_REGISTRY}sitecore-xc-id:${XC_PACKAGES_TAG}
+ depends_on:
+ mssql:
+ condition: service_healthy
+ restart: unless-stopped
+ environment:
+ Sitecore_Sitecore__IdentityServer__SitecoreMemberShipOptions__ConnectionString: Data Source=mssql;Initial Catalog=Sitecore.Core;User ID=sa;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", "powershell", "-command", "C:/Healthchecks/Healthcheck.ps1"]
+ timeout: 300s
+ 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_SITECORE_DOCKER_REGISTRY}sitecore-xc1-cd:${XC_PACKAGES_TAG}
+ depends_on:
+ mssql:
+ condition: service_healthy
+ solr:
+ condition: service_started
+ id:
+ condition: service_started
+ 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=mssql;Initial Catalog=Sitecore.Core;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Web: Data Source=mssql;Initial Catalog=Sitecore.Web;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Messaging: Data Source=mssql;Initial Catalog=Sitecore.Messaging;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_ExperienceForms: Data Source=mssql;Initial Catalog=Sitecore.ExperienceForms;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Exm.Master: Data Source=mssql;Initial Catalog=Sitecore.Exm.master;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Solr.Search: http://solr:8983/solr
+ 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_Identity_Server_Authority: https://${ID_HOST}
+ Sitecore_Identity_Server_InternalAuthority: http://id
+ Sitecore_xc_Minions_Url: http://engine-minions:5000/commerceops/
+ Sitecore_xc_Ops_Url: http://engine-ops:5000/commerceops/
+ Sitecore_xc_Shops_Url: http://engine-shops:5000/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
+ cm:
+ isolation: ${ISOLATION}
+ image: ${XC_SITECORE_DOCKER_REGISTRY}sitecore-xc1-cm:${XC_PACKAGES_TAG}
+ depends_on:
+ mssql:
+ condition: service_healthy
+ solr:
+ condition: service_started
+ id:
+ condition: service_started
+ rep:
+ 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=mssql;Initial Catalog=${SITECORE_CORE_DB};User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Security: Data Source=mssql;Initial Catalog=${SITECORE_CORE_DB};User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Master: Data Source=mssql;Initial Catalog=${SITECORE_MASTER_DB};User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Web: Data Source=mssql;Initial Catalog=Sitecore.Web;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Reporting.ApiKey: ${REPORTING_API_KEY}
+ Sitecore_ConnectionStrings_Messaging: Data Source=mssql;Initial Catalog=Sitecore.Messaging;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Xdb.Referencedata: Data Source=mssql;Initial Catalog=Sitecore.Referencedata;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_ExperienceForms: Data Source=mssql;Initial Catalog=Sitecore.ExperienceForms;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Exm.Master: Data Source=mssql;Initial Catalog=Sitecore.Exm.master;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Reporting: Data Source=mssql;Initial Catalog=Sitecore.Reporting;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Sitecore.Reporting.Client: http://rep
+ Sitecore_ConnectionStrings_Solr.Search: http://solr:8983/solr
+ 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_Reporting_Service_Url: http://rep
+ Sitecore_Processing_Service_Url: http://prc
+ Sitecore_Reporting_Service_Require_Https: 'false'
+ 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_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"
+ SitecoreMssqlServiceIp: mssql
+ SqlSaPassword: ${SQL_SA_PASSWORD}
+ SitecoreCoreDbName: ${SITECORE_CORE_DB}
+ Sitecore_xc_Minions_Url: http://engine-minions:5000/commerceops/
+ Sitecore_xc_Ops_Url: http://engine-ops:5000/commerceops/
+ Sitecore_xc_Shops_Url: http://engine-authoring:5000/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_SITECORE_DOCKER_REGISTRY}sitecore-xc1-prc:${XC_PACKAGES_TAG}
+ depends_on:
+ mssql:
+ condition: service_healthy
+ xdbcollection:
+ condition: service_started
+ environment:
+ Sitecore_AppSettings_instanceNameMode:define: default
+ Sitecore_ConnectionStrings_Core: Data Source=mssql;Initial Catalog=Sitecore.Core;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Security: Data Source=mssql;Initial Catalog=Sitecore.Core;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Master: Data Source=mssql;Initial Catalog=Sitecore.Master;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Reporting.ApiKey: ${REPORTING_API_KEY}
+ Sitecore_ConnectionStrings_Xdb.Processing.Pools: Data Source=mssql;Initial Catalog=Sitecore.Processing.pools;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Xdb.Referencedata: Data Source=mssql;Initial Catalog=Sitecore.Referencedata;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Xdb.Processing.Tasks: Data Source=mssql;Initial Catalog=Sitecore.Processing.tasks;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Reporting: Data Source=mssql;Initial Catalog=Sitecore.Reporting;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_XConnect.Collection: http://xdbcollection
+ Sitecore_License: ${SITECORE_LICENSE}
+ healthcheck:
+ test: ["CMD", "powershell", "-command", "C:/Healthchecks/Healthcheck.ps1"]
+ timeout: 300s
+ rep:
+ isolation: ${ISOLATION}
+ image: ${XC_SITECORE_DOCKER_REGISTRY}sitecore-xc1-rep:${XC_PACKAGES_TAG}
+ depends_on:
+ mssql:
+ condition: service_healthy
+ environment:
+ Sitecore_AppSettings_instanceNameMode:define: default
+ Sitecore_ConnectionStrings_Core: Data Source=mssql;Initial Catalog=Sitecore.Core;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Security: Data Source=mssql;Initial Catalog=Sitecore.Core;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Master: Data Source=mssql;Initial Catalog=Sitecore.Master;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Reporting.ApiKey: ${REPORTING_API_KEY}
+ Sitecore_ConnectionStrings_Reporting: Data Source=mssql;Initial Catalog=Sitecore.Reporting;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_License: ${SITECORE_LICENSE}
+ healthcheck:
+ test: ["CMD", "powershell", "-command", "C:/Healthchecks/Healthcheck.ps1"]
+ timeout: 300s
+ xdbcollection:
+ isolation: ${ISOLATION}
+ image: ${XC_SITECORE_DOCKER_REGISTRY}sitecore-xc1-xdbcollection:${XC_PACKAGES_TAG}
+ depends_on:
+ mssql:
+ condition: service_healthy
+ environment:
+ Sitecore_ConnectionStrings_Messaging: Data Source=mssql;Initial Catalog=Sitecore.Messaging;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Xdb.Marketingautomation: Data Source=mssql;Initial Catalog=Sitecore.Marketingautomation;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Xdb.Processing.Pools: Data Source=mssql;Initial Catalog=Sitecore.Processing.pools;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Collection: Data Source=mssql;Initial Catalog=Sitecore.Xdb.Collection.ShardMapManager;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_License: ${SITECORE_LICENSE}
+ healthcheck:
+ test: ["CMD", "powershell", "-command", "C:/Healthchecks/Healthcheck.ps1"]
+ timeout: 300s
+ xdbsearch:
+ isolation: ${ISOLATION}
+ image: ${XC_SITECORE_DOCKER_REGISTRY}sitecore-xc1-xdbsearch:${XC_PACKAGES_TAG}
+ depends_on:
+ mssql:
+ condition: service_healthy
+ solr:
+ condition: service_started
+ environment:
+ Sitecore_ConnectionStrings_Messaging: Data Source=mssql;Initial Catalog=Sitecore.Messaging;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Xdb.Marketingautomation: Data Source=mssql;Initial Catalog=Sitecore.Marketingautomation;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Xdb.Processing.Pools: Data Source=mssql;Initial Catalog=Sitecore.Processing.pools;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Collection: Data Source=mssql;Initial Catalog=Sitecore.Xdb.Collection.ShardMapManager;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_SolrCore: http://solr:8983/solr/sitecore_xdb
+ 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_SITECORE_DOCKER_REGISTRY}sitecore-xc1-xdbautomation:${XC_PACKAGES_TAG}
+ depends_on:
+ mssql:
+ condition: service_healthy
+ xdbcollection:
+ condition: service_started
+ xdbsearch:
+ condition: service_started
+ environment:
+ Sitecore_ConnectionStrings_Messaging: Data Source=mssql;Initial Catalog=Sitecore.Messaging;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Xdb.Marketingautomation: Data Source=mssql;Initial Catalog=Sitecore.Marketingautomation;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Xdb.Referencedata: Data Source=mssql;Initial Catalog=Sitecore.Referencedata;User ID=sa;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:
+ condition: service_healthy
+ environment:
+ Sitecore_ConnectionStrings_Xdb.Marketingautomation: Data Source=mssql;Initial Catalog=Sitecore.Marketingautomation;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Xdb.Referencedata: Data Source=mssql;Initial Catalog=Sitecore.Referencedata;User ID=sa;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:
+ condition: service_healthy
+ environment:
+ Sitecore_ConnectionStrings_Processing.Engine.Storage: Data Source=mssql;Initial Catalog=Sitecore.Processing.Engine.Storage;User ID=sa;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:
+ condition: service_healthy
+ environment:
+ Sitecore_ConnectionStrings_Reporting: Data Source=mssql;Initial Catalog=Sitecore.Reporting;User ID=sa;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:
+ condition: service_healthy
+ environment:
+ Sitecore_ConnectionStrings_Xdb.Referencedata: Data Source=mssql;Initial Catalog=Sitecore.Referencedata;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_License: ${SITECORE_LICENSE}
+ healthcheck:
+ test: ["CMD", "powershell", "-command", "C:/Healthchecks/Healthcheck.ps1"]
+ timeout: 300s
+ xdbsearchworker:
+ isolation: ${ISOLATION}
+ image: ${XC_SITECORE_DOCKER_REGISTRY}sitecore-xc1-xdbsearchworker:${XC_PACKAGES_TAG}
+ depends_on:
+ mssql:
+ condition: service_healthy
+ solr:
+ condition: service_started
+ restart: unless-stopped
+ environment:
+ Sitecore_ConnectionStrings_Collection: Data Source=mssql;Initial Catalog=Sitecore.Xdb.Collection.ShardMapManager;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_SolrCore: http://solr:8983/solr/sitecore_xdb
+ 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_SITECORE_DOCKER_REGISTRY}sitecore-xc1-xdbautomationworker:${XC_PACKAGES_TAG}
+ depends_on:
+ mssql:
+ condition: service_healthy
+ xdbcollection:
+ condition: service_started
+ xdbsearch:
+ condition: service_started
+ restart: unless-stopped
+ environment:
+ Sitecore_ConnectionStrings_XConnect.Collection: http://xdbcollection
+ Sitecore_ConnectionStrings_XConnect.Search: http://xdbsearch
+ Sitecore_ConnectionStrings_Xdb.Marketingautomation: Data Source=mssql;Initial Catalog=Sitecore.Marketingautomation;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Xdb.Referencedata: Data Source=mssql;Initial Catalog=Sitecore.Referencedata;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Messaging: Data Source=mssql;Initial Catalog=Sitecore.Messaging;User ID=sa;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:
+ mssql:
+ condition: service_healthy
+ xdbcollection:
+ condition: service_started
+ xdbsearch:
+ condition: service_started
+ restart: unless-stopped
+ environment:
+ Sitecore_ConnectionStrings_Processing.Engine.Storage: Data Source=mssql;Initial Catalog=Sitecore.Processing.Engine.Storage;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Processing.Engine.Tasks: Data Source=mssql;Initial Catalog=Sitecore.Processing.Engine.Tasks;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_XConnect.Collection: http://xdbcollection
+ Sitecore_ConnectionStrings_XConnect.Configuration: http://xdbcollection
+ Sitecore_ConnectionStrings_XConnect.Search: http://xdbsearch
+ Sitecore_ConnectionStrings_Messaging: Data Source=mssql;Initial Catalog=Sitecore.Messaging;User ID=sa;Password=${SQL_SA_PASSWORD}
+ Sitecore_ConnectionStrings_Reporting: Data Source=mssql;Initial Catalog=Sitecore.Reporting;User ID=sa;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_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_SITECORE_DOCKER_REGISTRY}sitecore-xc-engine:${XC_PACKAGES_TAG}
+ depends_on:
+ mssql:
+ 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: mssql
+ COMMERCEENGINE_GlobalDatabaseUserName: sa
+ COMMERCEENGINE_GlobalDatabasePassword: ${SQL_SA_PASSWORD}
+ COMMERCEENGINE_GlobalTrustedConnection: "${XC_GLOBAL_DB_TRUSTED_CONNECTION}"
+ COMMERCEENGINE_SharedDatabaseName: ${XC_SHARED_DB}
+ COMMERCEENGINE_SharedDatabaseServer: mssql
+ COMMERCEENGINE_SharedDatabaseUserName: sa
+ 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: "false"
+ COMMERCEENGINE_StorefrontIndexPrefix_web_index: sitecore_web_index
+ COMMERCEENGINE_StorefrontIndexPrefix_master_index: sitecore_master_index
+ COMMERCEENGINE_SearchIndexPrefixOrdersScope: OrdersScope
+ COMMERCEENGINE_SearchIndexPrefixOrdersScope-Rebuild: OrdersScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixCustomersScope: CustomersScope
+ COMMERCEENGINE_SearchIndexPrefixCustomersScope-Rebuild: CustomersScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixCatalogItemsScope: CatalogItemsScope
+ COMMERCEENGINE_SearchIndexPrefixCatalogItemsScope-Rebuild: CatalogItemsScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixPromotionsScope: PromotionsScope
+ COMMERCEENGINE_SearchIndexPrefixPromotionsScope-Rebuild: PromotionsScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixPriceCardsScope: PriceCardsScope
+ COMMERCEENGINE_SearchIndexPrefixPriceCardsScope-Rebuild: 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"]
+ timeout: 300s
+ engine-shops:
+ isolation: ${ISOLATION}
+ image: ${XC_SITECORE_DOCKER_REGISTRY}sitecore-xc-engine:${XC_PACKAGES_TAG}
+ depends_on:
+ mssql:
+ 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: mssql
+ COMMERCEENGINE_GlobalDatabaseUserName: sa
+ COMMERCEENGINE_GlobalDatabasePassword: ${SQL_SA_PASSWORD}
+ COMMERCEENGINE_GlobalTrustedConnection: "${XC_GLOBAL_DB_TRUSTED_CONNECTION}"
+ COMMERCEENGINE_SharedDatabaseName: ${XC_SHARED_DB}
+ COMMERCEENGINE_SharedDatabaseServer: mssql
+ COMMERCEENGINE_SharedDatabaseUserName: sa
+ 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: "false"
+ COMMERCEENGINE_StorefrontIndexPrefix_web_index: sitecore_web_index
+ COMMERCEENGINE_StorefrontIndexPrefix_master_index: sitecore_master_index
+ COMMERCEENGINE_SearchIndexPrefixOrdersScope: OrdersScope
+ COMMERCEENGINE_SearchIndexPrefixOrdersScope-Rebuild: OrdersScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixCustomersScope: CustomersScope
+ COMMERCEENGINE_SearchIndexPrefixCustomersScope-Rebuild: CustomersScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixCatalogItemsScope: CatalogItemsScope
+ COMMERCEENGINE_SearchIndexPrefixCatalogItemsScope-Rebuild: CatalogItemsScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixPromotionsScope: PromotionsScope
+ COMMERCEENGINE_SearchIndexPrefixPromotionsScope-Rebuild: PromotionsScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixPriceCardsScope: PriceCardsScope
+ COMMERCEENGINE_SearchIndexPrefixPriceCardsScope-Rebuild: 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"]
+ timeout: 300s
+ engine-minions:
+ isolation: ${ISOLATION}
+ image: ${XC_SITECORE_DOCKER_REGISTRY}sitecore-xc-engine:${XC_PACKAGES_TAG}
+ depends_on:
+ mssql:
+ 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: mssql
+ COMMERCEENGINE_GlobalDatabaseUserName: sa
+ COMMERCEENGINE_GlobalDatabasePassword: ${SQL_SA_PASSWORD}
+ COMMERCEENGINE_GlobalTrustedConnection: "${XC_GLOBAL_DB_TRUSTED_CONNECTION}"
+ COMMERCEENGINE_SharedDatabaseName: ${XC_SHARED_DB}
+ COMMERCEENGINE_SharedDatabaseServer: mssql
+ COMMERCEENGINE_SharedDatabaseUserName: sa
+ 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: "false"
+ COMMERCEENGINE_StorefrontIndexPrefix_web_index: sitecore_web_index
+ COMMERCEENGINE_StorefrontIndexPrefix_master_index: sitecore_master_index
+ COMMERCEENGINE_SearchIndexPrefixOrdersScope: OrdersScope
+ COMMERCEENGINE_SearchIndexPrefixOrdersScope-Rebuild: OrdersScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixCustomersScope: CustomersScope
+ COMMERCEENGINE_SearchIndexPrefixCustomersScope-Rebuild: CustomersScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixCatalogItemsScope: CatalogItemsScope
+ COMMERCEENGINE_SearchIndexPrefixCatalogItemsScope-Rebuild: CatalogItemsScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixPromotionsScope: PromotionsScope
+ COMMERCEENGINE_SearchIndexPrefixPromotionsScope-Rebuild: PromotionsScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixPriceCardsScope: PriceCardsScope
+ COMMERCEENGINE_SearchIndexPrefixPriceCardsScope-Rebuild: 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"]
+ timeout: 300s
+ engine-ops:
+ isolation: ${ISOLATION}
+ image: ${XC_SITECORE_DOCKER_REGISTRY}sitecore-xc-engine:${XC_PACKAGES_TAG}
+ depends_on:
+ mssql:
+ condition: service_healthy
+ solr:
+ condition: service_started
+ id:
+ condition: service_started
+ redis:
+ condition: service_started
+ cm:
+ condition: service_started
+ environment:
+ COMMERCEENGINE_AppSettings__DeploymentId: HabitatOps01
+ COMMERCEENGINE_AppSettings__EnvironmentName: HabitatOps
+ 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: mssql
+ COMMERCEENGINE_GlobalDatabaseUserName: sa
+ COMMERCEENGINE_GlobalDatabasePassword: ${SQL_SA_PASSWORD}
+ COMMERCEENGINE_GlobalTrustedConnection: "${XC_GLOBAL_DB_TRUSTED_CONNECTION}"
+ COMMERCEENGINE_SharedDatabaseName: ${XC_SHARED_DB}
+ COMMERCEENGINE_SharedDatabaseServer: mssql
+ COMMERCEENGINE_SharedDatabaseUserName: sa
+ 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: "false"
+ COMMERCEENGINE_StorefrontIndexPrefix_web_index: sitecore_web_index
+ COMMERCEENGINE_StorefrontIndexPrefix_master_index: sitecore_master_index
+ COMMERCEENGINE_SearchIndexPrefixOrdersScope: OrdersScope
+ COMMERCEENGINE_SearchIndexPrefixOrdersScope-Rebuild: OrdersScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixCustomersScope: CustomersScope
+ COMMERCEENGINE_SearchIndexPrefixCustomersScope-Rebuild: CustomersScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixCatalogItemsScope: CatalogItemsScope
+ COMMERCEENGINE_SearchIndexPrefixCatalogItemsScope-Rebuild: CatalogItemsScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixPromotionsScope: PromotionsScope
+ COMMERCEENGINE_SearchIndexPrefixPromotionsScope-Rebuild: PromotionsScope-Rebuild
+ COMMERCEENGINE_SearchIndexPrefixPriceCardsScope: PriceCardsScope
+ COMMERCEENGINE_SearchIndexPrefixPriceCardsScope-Rebuild: 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.ops-secure.entrypoints=websecure"
+ - "traefik.http.routers.ops-secure.rule=Host(`${OPS_HOST}`)"
+ - "traefik.http.routers.ops-secure.tls=true"
+ - "traefik.http.routers.ops-secure.middlewares=force-STS-Header"
+ healthcheck:
+ test: ["CMD", "powershell", "-command", "C:/Healthchecks/Healthcheck.ps1"]
+ timeout: 300s
diff --git a/sxc/10.0/xc1-cxa/mssql/init/Dockerfile b/sxc/10.0/xc1-cxa/mssql/init/Dockerfile
new file mode 100644
index 0000000..9487218
--- /dev/null
+++ b/sxc/10.0/xc1-cxa/mssql/init/Dockerfile
@@ -0,0 +1,23 @@
+# escape=`
+
+ARG BASE_IMAGE
+ARG SPE_RESOURCES_IMAGE
+ARG SXA_RESOURCES_IMAGE
+
+FROM ${SPE_RESOURCES_IMAGE} AS spe_resources
+
+FROM ${SXA_RESOURCES_IMAGE} AS sxa_resources
+
+FROM ${BASE_IMAGE} AS spe
+
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+
+COPY --from=spe_resources C:\module\db C:\resources\spe
+
+FROM spe AS sxa
+
+COPY --from=sxa_resources C:\module\db C:\resources\sxa
+
+FROM sxa AS cxa
+
+COPY ./dacpacs ./resources
\ No newline at end of file
diff --git a/sxc/10.0/xc1-cxa/mssql/standalone/Dockerfile b/sxc/10.0/xc1-cxa/mssql/standalone/Dockerfile
new file mode 100644
index 0000000..7d2dfa1
--- /dev/null
+++ b/sxc/10.0/xc1-cxa/mssql/standalone/Dockerfile
@@ -0,0 +1,30 @@
+# escape=`
+
+ARG BASE_IMAGE
+ARG SPE_RESOURCES_IMAGE
+ARG SXA_RESOURCES_IMAGE
+
+FROM ${SPE_RESOURCES_IMAGE} AS spe_resources
+
+FROM ${SXA_RESOURCES_IMAGE} AS sxa_resources
+
+FROM ${BASE_IMAGE} AS spe
+
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+
+COPY --from=spe_resources C:\module\db C:\spe_data
+
+RUN C:\DeployDatabases.ps1 -ResourcesDirectory C:\spe_data; `
+ Remove-Item -Path C:\spe_data -Recurse -Force;
+
+FROM spe AS sxa
+
+COPY --from=sxa_resources C:\module\db C:\sxa_data
+
+RUN C:\DeployDatabases.ps1 -ResourcesDirectory C:\sxa_data; `
+ Remove-Item -Path C:\sxa_data -Recurse -Force;
+
+COPY dacpacs/ C:/commerce_data
+
+RUN C:\DeployDatabases.ps1 -ResourcesDirectory C:\commerce_data; `
+ Remove-Item -Path C:\commerce_data -Recurse -Force;
\ No newline at end of file
diff --git a/sxc/10.0/xc1-cxa/solr/init/Dockerfile b/sxc/10.0/xc1-cxa/solr/init/Dockerfile
new file mode 100644
index 0000000..2f538a4
--- /dev/null
+++ b/sxc/10.0/xc1-cxa/solr/init/Dockerfile
@@ -0,0 +1,12 @@
+# escape=`
+
+ARG BASE_IMAGE
+ARG SXA_RESOURCES_IMAGE
+
+FROM ${SXA_RESOURCES_IMAGE} AS sxa_resources
+
+FROM ${BASE_IMAGE} AS sxa
+
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+
+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.0/xc1-cxa/solr/standalone/Dockerfile b/sxc/10.0/xc1-cxa/solr/standalone/Dockerfile
new file mode 100644
index 0000000..9ff5805
--- /dev/null
+++ b/sxc/10.0/xc1-cxa/solr/standalone/Dockerfile
@@ -0,0 +1,15 @@
+# escape=`
+
+ARG BASE_IMAGE
+ARG SXA_RESOURCES_IMAGE
+
+FROM ${SXA_RESOURCES_IMAGE} AS sxa_resources
+
+FROM ${BASE_IMAGE} AS sxa
+
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+
+COPY --from=sxa_resources C:\module\solr C:\sxa_data
+
+RUN C:\Add-SolrCores.ps1 -SolrPath C:\solr -SolrSchemaPath C:\sxa_data\managed-schema -SolrCoreNames 'sitecore_sxa_master_index,sitecore_sxa_web_index'; `
+ Remove-Item -Path C:\sxa_data -Recurse -Force;
\ No newline at end of file
diff --git a/sxc/10.0/xc1-cxa/traefik/certs/authoring.localhost.crt b/sxc/10.0/xc1-cxa/traefik/certs/authoring.localhost.crt
new file mode 100644
index 0000000..97c08c0
--- /dev/null
+++ b/sxc/10.0/xc1-cxa/traefik/certs/authoring.localhost.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDADCCAeigAwIBAgIJANWbFRqU1ORCMA0GCSqGSIb3DQEBCwUAMCUxIzAhBgNV
+BAMMGkNvbW1lcmNlIENvbnRhaW5lciBSb290IENBMB4XDTIwMDQxNjE4Mjg1MFoX
+DTMwMDQxNDE4Mjg1MFowHjEcMBoGA1UEAwwTYXV0aG9yaW5nLmxvY2FsaG9zdDCC
+ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANvcRPvBKjYyEFq0PnQCTddk
+WQX67yebWIZGXO7jYmNivVs2HghPmLaNWICXDpVKZmysWixu8QI25TuNMNEvZrv3
+qtcRRFHpDkKO6JPh8cjjZ/4wAy5KwPzGz99ijTIzqRnuhjeZzbfN0wH5GyZ7R4H3
+CDIWeaLoGpj9ZidMVEuI8PrD0ygM7RXM3x2VDUOnUWHtRmVX9hhjQaZRgENSdGj4
+QxEdgP8CpXjbMMWc+nsSDqiVvXYSnS3r3iPhCbo0hUP8s5c265iX+MWzajLVrMst
+/sHpdGH8vVZxFidNzZCCCxIHTCSYa/6EWzwzLLkVlEYNhtbmobX9WfAz+jSMeUsC
+AwEAAaM6MDgwCQYDVR0TBAIwADALBgNVHQ8EBAMCBeAwHgYDVR0RBBcwFYITYXV0
+aG9yaW5nLmxvY2FsaG9zdDANBgkqhkiG9w0BAQsFAAOCAQEAIt+6GORR8nxKJ5nv
+vsUzoWdGp1HLIV5fZT4Aq+6VQ/NMX4Ms89w1/npUH3D4+tmlFEdxLsFF2Jhmbynr
+fs8ROmCyT5IIIGX34Vp5SLJBqjSxEFKWpxeOTRrC2CRdZAG7rS3sILCwGBxuJnhn
+z9UU8pInDGeBjPZIchJbdI9lREDiSqbxGUP9AfWPZlYAtUSyAbCYMLg7RFNEPJl7
+IfZ1l0OIa1R4wxMfqc96YkSiXCi8ZMgbqsxWLkrA3+L8vhzxrwah7lYH8I8GlY1a
+AlXUZz26/GkPevIGINu72nPn16pV7lqXpTdBTOOZhDbOFCyfNnw1zUM4InZtpNZd
+ZYZ5mg==
+-----END CERTIFICATE-----
diff --git a/sxc/10.0/xc1-cxa/traefik/certs/authoring.localhost.key b/sxc/10.0/xc1-cxa/traefik/certs/authoring.localhost.key
new file mode 100644
index 0000000..41f1e55
--- /dev/null
+++ b/sxc/10.0/xc1-cxa/traefik/certs/authoring.localhost.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEpAIBAAKCAQEA29xE+8EqNjIQWrQ+dAJN12RZBfrvJ5tYhkZc7uNiY2K9WzYe
+CE+Yto1YgJcOlUpmbKxaLG7xAjblO40w0S9mu/eq1xFEUekOQo7ok+HxyONn/jAD
+LkrA/MbP32KNMjOpGe6GN5nNt83TAfkbJntHgfcIMhZ5ougamP1mJ0xUS4jw+sPT
+KAztFczfHZUNQ6dRYe1GZVf2GGNBplGAQ1J0aPhDER2A/wKleNswxZz6exIOqJW9
+dhKdLeveI+EJujSFQ/yzlzbrmJf4xbNqMtWsyy3+wel0Yfy9VnEWJ03NkIILEgdM
+JJhr/oRbPDMsuRWURg2G1uahtf1Z8DP6NIx5SwIDAQABAoIBAQCRaWjSnVpex9Pb
+OdUIgzGaoMrkUqf0KSFuhYEXmppLI1YbynoogwR80JVVTxMdGD0P6RomwyVxkn8g
+WOyNne0zqsV6QvhNuHdu+/fFPy3b8NOp4XVpG5XyWUfI9fRu3I4eEY0Bnx7ZTy8c
+4fXcCLMtuQXZotXGMf7NauMyYKBr56eJWoI4yswg8xukwXoz2+DHAjvWTY8TJGOH
+y1MgbvgD/levrCH7UBCsBcCA17Q9EgUoF4DHM+Rm307w7S/XDvsvazW4RK2Gf545
+AmQUxYtVH0oBD6YKHAZ4pV0qqY6ce2/aBUfHWUg5LSgHuLrKuCRJ5MO2FXAOFJl6
+/A8lsbHRAoGBAPSzyLPy90HjfL0Gm71rnhMxcnFPjP+OhOFAP9Y1ZiL49NMXiAUW
+T8R8d9Oy89HC8Sicmu9Tsvygqo49E4zxcoxBxGlfRME8CQqQA5BT9o+HVfVH7UhR
+dC7rVhXelElQ5943vhL9jbxWENJDsq2qzMZVVK0dceaOdGrGrjOoFIIpAoGBAOYC
+3xsZ0OkNearSna3QW5H627YImKQMvsHZKwB92uFyPmrpz06KpM+D3yJ4Er90xJQ5
+FizDeerkrdBwysclgJW0/smLnYhBd1fat66YepqJEM5ECOw9H8XRzsKl2QqwVm+n
+ZfUm3r9OdTGFEAwIJHbTOgf1U0Qqwvzm+a6bWNZTAoGABuKYHxgTBPOVquvoree9
+RuT5R17ppLcp3fykzy4pdYpzuQzMcvgxvmGSLY63dYt6pZ3ibiF4w8rxgZcOWcTh
+aDjhgeWAVb+OsZFjyEfUhC1WqdQgRQylrDxK68qbeYShQYtn+bjQqB/z0Ta+bEyF
+/n6gJ07QyZ/wfqCgfiuYiCECgYEAq61xATVfrNOWAF57uoROFMN8wn3gEHJC30VM
+x20otiUjWYFyblklco4nOf8NX0G0iD2jw32TvjM5WN8XO1VOiG8zzRMcXdsfTL+/
+Yd4FhNrRZGN7lXh6Apj7DmXjfgroOSZk/3onv/q7ll6O/6wEK3y1T8NYhwSzzThJ
+HH5u7GkCgYBJqhTK/QVfp2owND46lhfDLjgxalaKDI4MB5VMssOt2G5Hual04ZUT
+EdoQ8QkkSlLfBh2f9px0Xw8MmBXgXy9ejSQT3nAHUjOJoe8426aGtq/tyZSkAPQI
+06LzSr7cOVLnTVh/Xupi7c3zkxMcrt4a7WKCqtTRq0TrInd8WjeNlg==
+-----END RSA PRIVATE KEY-----
diff --git a/sxc/10.0/xc1-cxa/traefik/certs/bizfx.localhost.crt b/sxc/10.0/xc1-cxa/traefik/certs/bizfx.localhost.crt
new file mode 100644
index 0000000..7e30753
--- /dev/null
+++ b/sxc/10.0/xc1-cxa/traefik/certs/bizfx.localhost.crt
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC+DCCAeCgAwIBAgIJANWbFRqU1ORGMA0GCSqGSIb3DQEBCwUAMCUxIzAhBgNV
+BAMMGkNvbW1lcmNlIENvbnRhaW5lciBSb290IENBMB4XDTIwMDQxNjE4Mjg1MVoX
+DTMwMDQxNDE4Mjg1MVowGjEYMBYGA1UEAwwPYml6ZngubG9jYWxob3N0MIIBIjAN
+BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsGnNUXINnqVekw+LqNwCIaA7lgRO
+tMZpxjUp852MozbuDDGHq3bFUVLyZLAReeUDyWiK8w/TJnkGwV6tNC3wOhF7tXCu
+Ay+5+aNhBcSO42qMrtpuVzYNpvF/61gP5ThTVw9pKDHrJsbxNjuiNaXxRAT1M7f8
+0+tKYAFsiW/XukPvZQ3qvX1MNY2sLXOys7Pmncl8yBL8N6Ae1jUSmeeV6jx4Dl3x
+chPw3N8o7YCxi/yJc9+8xpxa9s4bvB62BjRpHwKsPEsUg70q8n0HFe7nZYvYiCd0
+B6kV6Ib2oBY2DVPjyeGHy4sbO4Q0xpcofA0FP77GhS/IXqaSGKs9lQmadwIDAQAB
+ozYwNDAJBgNVHRMEAjAAMAsGA1UdDwQEAwIF4DAaBgNVHREEEzARgg9iaXpmeC5s
+b2NhbGhvc3QwDQYJKoZIhvcNAQELBQADggEBAFwn7bIUAJvMvWplFvm3E+qT3xrP
+aGGQPJS9a0/7a6rvneVpa3D+JhC3LveWEgFOHVOTdwMXbw6DL79/XpkHZ4x1LUPg
+nJxiLnLpAwf+AYpSQahWgn+R11VJKIhIQgHFruAoCXpCsxjd9TVSCT+/dA/wicQp
+zkHwuXAUDDfsOhXA3ImXnB2Pf4udOy0BAp5K9LBZT6nWfunjQhsbFBDg9Nb5Xqgx
+JHS8Ygjvxx0klNtmPijMmYjRYg96nv55bB9jhrVUsBXFPXYhZ4dVYLuGFgEVkXC5
+TIHV/7B1aCrkQ6WWT69DY1nLYCpmUy/3KLaH/ZTFokK0abRRBfwK1qhCrdM=
+-----END CERTIFICATE-----
diff --git a/sxc/10.0/xc1-cxa/traefik/certs/bizfx.localhost.key b/sxc/10.0/xc1-cxa/traefik/certs/bizfx.localhost.key
new file mode 100644
index 0000000..cf31a7e
--- /dev/null
+++ b/sxc/10.0/xc1-cxa/traefik/certs/bizfx.localhost.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAsGnNUXINnqVekw+LqNwCIaA7lgROtMZpxjUp852MozbuDDGH
+q3bFUVLyZLAReeUDyWiK8w/TJnkGwV6tNC3wOhF7tXCuAy+5+aNhBcSO42qMrtpu
+VzYNpvF/61gP5ThTVw9pKDHrJsbxNjuiNaXxRAT1M7f80+tKYAFsiW/XukPvZQ3q
+vX1MNY2sLXOys7Pmncl8yBL8N6Ae1jUSmeeV6jx4Dl3xchPw3N8o7YCxi/yJc9+8
+xpxa9s4bvB62BjRpHwKsPEsUg70q8n0HFe7nZYvYiCd0B6kV6Ib2oBY2DVPjyeGH
+y4sbO4Q0xpcofA0FP77GhS/IXqaSGKs9lQmadwIDAQABAoIBAANTCxZ00sLhlOWq
+jlQxSSz/CwBptl37uzSL/e1kU6kjuNqr+EWH6HH+4Sh6lOm6IhcijDPGYZFBCJqO
+QS9Rikxd1fn2VKEkvhlxNbvZF2Q7tsj4vsmP8DPsKx/xOeN060UhujaSsj650wPV
+ndnq9Z/1g/VkizQnI/CpNjVk0SjmZM0pDSmOvZJV2yABYnArSngUsRH48uD1zSHw
+zx312uM3wJUUggOE5Lm8IzazK7uR08v3eOjjyuhHr+R1Zjs0C8QgcIvx71Epoizv
+d/fLBKcoa5GjYoyANqugHO4VvHYt52VZjgTR04livXOFjs+J+Vlhe5FfkLS0fiqN
+LFfheYECgYEA5UlNIW9bmVGh91FbkOlv3jgLKKOdgLM4SqaLZpqfT+MOMf7mAPoW
+OVTb0LMHn06CdDl8zmAvecPEJ1NcGAQT+qSrmgppULWUJ2ulkcnokbIiC4/Qkd6j
+ZOl28CDF/z7t0r3bPUX8yGuTPKA6I+3+64o8dkBr6DvhZmnXKG6v7MECgYEAxPeC
+Hl/FbdkNmy9RdWtiXyx/slIO5/KKokiMo8DlA65UP6tUeUXYxN/ua1UiIM3XFDv9
+LcFHZxeNwPjDt8tYZ88T+kbs53BE7W+y/uGwbOFqeqozmxWWIp+MSF+q5IfYXroo
+AKZW52S3YJGHcVxZyJYJRLC7+3EVauV7YqoD/TcCgYBYSWBUtn9Lyv4VsBMU+n3j
+0CqjzFRyYRAU1oooyPL9HM2zfJXt3F5AVyeI9dbChcV/oT8obCr7tODLz7JPYQqc
+YVneJ5IjzLcucqm/OELADxpC326NLHA4BBmTHtt+jCmhEw/fSRqrxZhdKMkaWqLk
+6UactfOW6a/B8pExdWVyQQKBgQCHnfOVflOtorlflGD9/AYribQSz7U7tyAFRPaw
++Wu18R5JCGqNZa4vQBAlDuUEuTXR1Mwp6N6E+Q69Q4tezT/9mfMjbBpJ8F9FLJeO
+L08OaNarxuzpZx+Mj1ZDrrs3xuEPuBU6/Uzw3cP1Vb5wKyoWllejWBzWr7ITfBZM
+hMtiWQKBgGYP8lePwiw4tRsFhJZGmffERNtW9A3ugUwxisaSmVUm9Pn+vyJzzoi8
+4I+AbBCKKDtmOPnabAgWDHQyWIT7k9ZcVaP2//gYHlOauyG/va97nO9nL4GR9NpX
+HWpoof0Cs/VBVym5/Wmzq5R2oMsR07SA7Cx80Dd9lYizG2VQXp0r
+-----END RSA PRIVATE KEY-----
diff --git a/sxc/10.0/xc1-cxa/traefik/certs/minions.localhost.crt b/sxc/10.0/xc1-cxa/traefik/certs/minions.localhost.crt
new file mode 100644
index 0000000..ba75af9
--- /dev/null
+++ b/sxc/10.0/xc1-cxa/traefik/certs/minions.localhost.crt
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC/DCCAeSgAwIBAgIJANWbFRqU1OREMA0GCSqGSIb3DQEBCwUAMCUxIzAhBgNV
+BAMMGkNvbW1lcmNlIENvbnRhaW5lciBSb290IENBMB4XDTIwMDQxNjE4Mjg1MFoX
+DTMwMDQxNDE4Mjg1MFowHDEaMBgGA1UEAwwRbWluaW9ucy5sb2NhbGhvc3QwggEi
+MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDOqAmAxVDcen62idtzpB6x7jNk
+//6tMKAIOl/V353P3mb/qMOIqZBuF/Jvo+dTH4zGkWX4J8DZofXAaSMGglR1RSqj
+hYLobpQlrSKdIRSm15vOhy5nVTTQz7mLReIYvHqGHGajVJuxtLUXqPgNMTZFrB1K
+9nUQsKgt7vSspUH6eQ9WbjBGBNwpulXpjDGsQItvMN+lm63jAbiQBBLTP+lK/CUM
+DHBBhbm1ycjIfFST5BKbcRh7F+d/+jYTbZrivtaYSUdqjPbZGDp11YHlEBHF2YoG
+qRsOhejkoo1os4bEQvQaIwExssP7/j/6PBaUIuQGbS66VuBl+jS6RESq8CV/AgMB
+AAGjODA2MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgXgMBwGA1UdEQQVMBOCEW1pbmlv
+bnMubG9jYWxob3N0MA0GCSqGSIb3DQEBCwUAA4IBAQAyQcBuQJSdKLmIalYUWjsk
+p90LgbZVdypCmsv9Bi3EZnbfFDVX/zPXtH5+mqxuQhZ4LMvk38kYQHCyd+8sGWgQ
+nMOoP2tzNwxV8sPO4TQ5oMVymoMcKu/hZE3Pn3LOxEma8xum+EtJEzl5p+rivYLI
+hGtQtZejYRdxJU32mrvJVCDDZIwhaS5XA90oGY4SYNRD2GCSW6pPuSDV7BzJzvon
+mM9dB+dEdbQoRUrWzDmdRNbyg9/I93swjTlD6nj0emoNvk6s7BszQ4rp2fAnFWuM
+Mq9fQhvgpUg3e6TM30xSHwmSZmZcWtPCUbWfICrNZvE+L6FnjINOG0epc+UQJpMP
+-----END CERTIFICATE-----
diff --git a/sxc/10.0/xc1-cxa/traefik/certs/minions.localhost.key b/sxc/10.0/xc1-cxa/traefik/certs/minions.localhost.key
new file mode 100644
index 0000000..742b475
--- /dev/null
+++ b/sxc/10.0/xc1-cxa/traefik/certs/minions.localhost.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAzqgJgMVQ3Hp+tonbc6Qese4zZP/+rTCgCDpf1d+dz95m/6jD
+iKmQbhfyb6PnUx+MxpFl+CfA2aH1wGkjBoJUdUUqo4WC6G6UJa0inSEUptebzocu
+Z1U00M+5i0XiGLx6hhxmo1SbsbS1F6j4DTE2RawdSvZ1ELCoLe70rKVB+nkPVm4w
+RgTcKbpV6YwxrECLbzDfpZut4wG4kAQS0z/pSvwlDAxwQYW5tcnIyHxUk+QSm3EY
+exfnf/o2E22a4r7WmElHaoz22Rg6ddWB5RARxdmKBqkbDoXo5KKNaLOGxEL0GiMB
+MbLD+/4/+jwWlCLkBm0uulbgZfo0ukREqvAlfwIDAQABAoIBABYZ8JI+CAzcaOra
+yYaPmdzLreFyY2lgVu0qWQ+Fj9ooXfmfsfHOuKydkQcRj27bY/HkoPQuRDjCUocW
+d3F9xMyZ7hp47+wtz1hMMPR/EjdZvccTvAm/Ghvu61gSzEB6/9uR9AQpy1DxE6EJ
+KCY5CiXfZ26Z9yEm04W+FZrVPb4svPGP6for+2nYXYoLnOfXEhaGONjGQhmcSoSk
+my6XdSIa/84o+uK+h/DqkWamN0teIF1H75hRPOfZrGuQ0jsWGtGOXWqLXeda334M
+mSaQJPS5gaiuVRfzQQS4tnCNlYxE4D0dy+skwooyz9u1tK0mddf/upvLmbUmRnVO
+2nFdgjkCgYEA+gT5+VYbPHX8t8VpTL5RPG3MYYaQOMMxj19ZeF5G0iEYKsAFKiSA
+BEbd48whsm7jNvGSirmtA3Rb8/EVQyDSN77TJWYcPRSDtLi313vP0pcHXD4Swd7O
+aYsNSJWH63ZUREZ0L+dGTVmjK0hZDfEYQwqHgkiX+FsDAU3COFDgOM0CgYEA05mF
+nfg0g58AvFT2xkTTzu3N2im+GnBV1fQIALfcy0ggwfhuhuGeSG2NLMjxCw7aqcrz
+FcNut7zsX9HfdElYQvdeSI3RGOyef8nAAnc6o71SlbmvhaBYdkGYqORotVoLAuJB
+PiwewDuGzG4vuJSb/xc7qqKuTlIK+ZWWLq1ER3sCgYBnOIC/mPYbqxaQBHep0HUX
+frk/ll+an7OpXpNAp6OTg0hH9gjr0i/sFBntv0w2L6Os/mUi0u+EGpkQCHtfwIAp
+taXUreiAqySJCy4TT7GIXwQR6Cq0UblkR51PVzTLWIoHuhKj6FbU/mnoJ7FkmSIM
+I5+4gSIEzgZalnDV8UXxDQKBgExz2Lo11suDpKFnVW5XqevHMixUDrLAydKvBEE2
+LVlpaySKXWzwkd77bhmzVJw5NrpIcMH5RcSvRvxr+P+sDG7Nr8wpKVaHD9F+FJkP
+eSl2GyOr3oY6ZBv+IWlMdaSorvfQxd/v0wCDwXWVjjpzv1VQkKdbdf0oWXzKFmQx
+CE2HAoGBAJkvHmzQFJWTQnEdMSEK3yD+zvhY9atWH9JmxYLWz4gl83n54oBoYE0m
+lN1O5x4AVTV6KMhLXcL4np552F1DW/oxJGcCeZyDW6KPphO2kEzaUAStaz3DhC6N
+vkCO/plZIqfao+3/r5NCMIxd+T+/a2EC9nxO7pZiM4IRXJ+aDoPX
+-----END RSA PRIVATE KEY-----
diff --git a/sxc/10.0/xc1-cxa/traefik/certs/ops.localhost.crt b/sxc/10.0/xc1-cxa/traefik/certs/ops.localhost.crt
new file mode 100644
index 0000000..4415727
--- /dev/null
+++ b/sxc/10.0/xc1-cxa/traefik/certs/ops.localhost.crt
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC9DCCAdygAwIBAgIJANWbFRqU1ORFMA0GCSqGSIb3DQEBCwUAMCUxIzAhBgNV
+BAMMGkNvbW1lcmNlIENvbnRhaW5lciBSb290IENBMB4XDTIwMDQxNjE4Mjg1MVoX
+DTMwMDQxNDE4Mjg1MVowGDEWMBQGA1UEAwwNb3BzLmxvY2FsaG9zdDCCASIwDQYJ
+KoZIhvcNAQEBBQADggEPADCCAQoCggEBANl/5x2I4h8RnPlUJ9Ayb1adGt9/HBp1
+y0LMn/uRYA1EqT0SpJsxMm3+Ga/2FKv7zhtnHM7zmHNHTazxgkhY0ESD50XF+eeS
+6An51bccTFL8bQMn5/tb5t5nLp67kgzgmsQIl6UZ9Kslwh2JcbPzDPthx0Z1oaUX
+KIknspnLnnbF4M7Zn5Aahq/tBijurP+phEZCj5POltoW0+iDc5pt03ZGIaEfHF19
+JYbr5HyHD0EnIXO6/RyyO25jPpAvtjKS//97m7LOWTSCzgdqRiifw/Db47LRoZJv
+hIT6zJxZsiN7KkYkCaantt5fBvJaX3e1Ych6nSgSJyMH/DGQh1llsvcCAwEAAaM0
+MDIwCQYDVR0TBAIwADALBgNVHQ8EBAMCBeAwGAYDVR0RBBEwD4INb3BzLmxvY2Fs
+aG9zdDANBgkqhkiG9w0BAQsFAAOCAQEAYQr2g3zScfWikRsKlpkxVLZsT+8WHS1f
+l5STP+dKgHeDCS2cD15CEmQhDEmzd6xF1qcQaqIyyrkVzwN1jzgMyNc5rgtjDRbK
+xgjL5FWGzekrPI98my16he+kKYDULUA5yVjMMuEUqJKjdLEF0dtn4a69QRa5/a6n
+T4rTZ5v8eQ7Re/ZP0TrMLixpMtiD0VcwgpsJzVQHq6muNYDEfeuucKNKUjAhRXXz
+XHV7oP6dPXfvmmfZh+Hun9IUPHsVJSU9kJce2oztEU7YSkA1BUrGygdXwCPKhjol
+vYYCbRHHkL110/J33gTUn/c20z0Wa6iScn4SFFHGYMTGlfHGzYM+AA==
+-----END CERTIFICATE-----
diff --git a/sxc/10.0/xc1-cxa/traefik/certs/ops.localhost.key b/sxc/10.0/xc1-cxa/traefik/certs/ops.localhost.key
new file mode 100644
index 0000000..382ce97
--- /dev/null
+++ b/sxc/10.0/xc1-cxa/traefik/certs/ops.localhost.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEpAIBAAKCAQEA2X/nHYjiHxGc+VQn0DJvVp0a338cGnXLQsyf+5FgDUSpPRKk
+mzEybf4Zr/YUq/vOG2cczvOYc0dNrPGCSFjQRIPnRcX555LoCfnVtxxMUvxtAyfn
++1vm3mcunruSDOCaxAiXpRn0qyXCHYlxs/MM+2HHRnWhpRcoiSeymcuedsXgztmf
+kBqGr+0GKO6s/6mERkKPk86W2hbT6INzmm3TdkYhoR8cXX0lhuvkfIcPQSchc7r9
+HLI7bmM+kC+2MpL//3ubss5ZNILOB2pGKJ/D8NvjstGhkm+EhPrMnFmyI3sqRiQJ
+pqe23l8G8lpfd7VhyHqdKBInIwf8MZCHWWWy9wIDAQABAoIBAAmeIEgsD2O0Ua6s
+y/3m3QmFdPTBGCsLXmubxM9JBGhRyvIKawD50fMPM2+WgB+CyQBpNNrp5qniU0r8
+evhcBQmik42ATaax1lTqmUq5k55vzxo+n4F79N+MzID0ZmbvX6ifgKUqWqleyBCq
+TT7Z1o8fKcKx3O4B8ibufHVUjbNOw90aSLv6ny9z5jJPMZrOY7U7r6HfcCnF3CVB
+/0BVoBQWdJYkbFPDVHfyXwfnSRz1CIWOFiRz1GjFjCK0JBxr/hiVnrLnt8OfvZzM
+oSaU1KRryDr9bOg5U6YyvEqydwVxBC7uF9+/Kcgu2U4BUyDaQJlycLMgAz4hdQ93
+zE+TWEECgYEA75H0UOEu9sT2x7Cb3IamfRJFafn/yOH6vVBrobS/xuc8ZZ872h5z
+RjnAW9JXlqzMQ0Dm2hxCMJxCbIBPj6cOPnGmaGk9twRXGSC5cnpb59qoVAut3IcG
+idSz3/ae2TQgA6xL7BFOqNz7Y1DbnWrBiHEQuGBnXsRya6+1nqHuKDECgYEA6Gp2
+5plsQR1lDKEwXt8hMaNYw5YAzM1aSNjrbgweBgwTZFMRgXqbm4XO3ttzDBSbZlyl
+hYm3KmRq8Xzb1qOJewKjnk4fJmXsWSjsBFXuEJ/4JCrKvD3rBa8u2oAIFCD/fYdy
+GpgVQPH2gAtEWwjEX0ldVj4m86RO920bxI3Na6cCgYAt7mjOHO5ZJ5g83vJzDGnd
+LuSaFfFhfVoKc+G+5h2ir/DXdvkNr6rgOvBTaneajtS2zDm2dZaHJV5i2RLn8tp7
+RGToPc00SqO8UJbdiPIX+McvHfIehtDNGjfGZ806zZCZw63mu8a9/2g/OWBxxOcI
+Fs1i3DDVbYqWdOC4Ykl78QKBgQC1h5JfAq5fHYpzluKk9zqB/sex3FO7oxlFlMgu
+KCC7MGtlDMy7iPxJOPYfcuAlK2NFTE+sQahi4BP3kkJTH2CeR61sVDBYWXuFGEVg
+DY3oRkoWVaYL6YDL68x4tU+aCTwE2+nvg6H2HAcgc6xsPijDFBZm6hyaaFeVQg9S
+Mj+kOQKBgQDLx4zptaIsjSGRc22k6/1FrRYv7FTijADXyZFTkegLttrLSErIfrYB
+15iD26CopyowrTdNDDk7U67i2jNmCu+FCU6HlNn4v+DikWqBBJ/LjWylHPHdiW4g
+tVMqsHOP0U0BWDZLv6Uze5Hb8nq4duOz4JmbDtTvr25gcDKg+tW+LA==
+-----END RSA PRIVATE KEY-----
diff --git a/sxc/10.0/xc1-cxa/traefik/certs/root-ca.crt b/sxc/10.0/xc1-cxa/traefik/certs/root-ca.crt
new file mode 100644
index 0000000..de05509
--- /dev/null
+++ b/sxc/10.0/xc1-cxa/traefik/certs/root-ca.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIDCCAgigAwIBAgIJAKoO7Lo+DytDMA0GCSqGSIb3DQEBCwUAMCUxIzAhBgNV
+BAMMGkNvbW1lcmNlIENvbnRhaW5lciBSb290IENBMB4XDTIwMDQxNjE4Mjg0OVoX
+DTQ3MDkwMjE4Mjg0OVowJTEjMCEGA1UEAwwaQ29tbWVyY2UgQ29udGFpbmVyIFJv
+b3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQChFn12HOzhwLmW
+sT1hSLRkyvemTn7qm+xEFkgzwCM5VPh9prFLsbwR4hJ9dfsRIkHwYmQvPbI4CIas
+ZA+inR2ybDn2wNGwbIhbj4UgJd36aCY56XlrcNo5CtRhvDhBoIbMjyQy5a9tA/mh
+YMmnOPBrgqT7IPtMWnwFd+KotSRcac5mEFFTXtMk9gf/5QsE2ObbPunNJnZF2HgX
+0bB6CTbkTPi14G41/RwJBPGQtEBLb8vn+CDYy4I+HHP8vZUoDIboNAys5p1+fixC
+mkDlMV/jpZv15fDmN8oF1Xa2kBJ8ZuUbi3nvjQt5+kky6HHDtC2+nrhIGVo5VoSx
+LDwP4/vXAgMBAAGjUzBRMB0GA1UdDgQWBBSJNj+U8zKa03rbO6QngVOZztO74zAf
+BgNVHSMEGDAWgBSJNj+U8zKa03rbO6QngVOZztO74zAPBgNVHRMBAf8EBTADAQH/
+MA0GCSqGSIb3DQEBCwUAA4IBAQAYCtMnfgdAFVRIxxhr5sxTh48fE+rTtQoW8bqg
+rJJKamrS37wj3i4ZAjMGL6RaURqfInCJiBERYQP6JfydHzJKb1lVtrJuY00zBook
+rI39C66nfCnxUJgWuK06upgqkpEs0ubTRR8FWnIHuidJhG1kO//LfwZtCvXloxaY
+LIxIsyNt2FKMQjm6fIcQvLzoJALDVemrfSOCDoCYZdD2kct7TXo1YzdiDOXiCJRp
+EGAlfJP4CfKxobfErvmB4rrql+PDX+uMJVXbbEYVnn3PK+TFGXHo6Emd6BJB2PMi
+Lq74sw5j4nbyXWL2cWxWy9XYcdOEqen2aWvAs6rJfxpwPj3D
+-----END CERTIFICATE-----
diff --git a/sxc/10.0/xc1-cxa/traefik/certs/root-ca.key b/sxc/10.0/xc1-cxa/traefik/certs/root-ca.key
new file mode 100644
index 0000000..a6259b8
--- /dev/null
+++ b/sxc/10.0/xc1-cxa/traefik/certs/root-ca.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAoRZ9dhzs4cC5lrE9YUi0ZMr3pk5+6pvsRBZIM8AjOVT4faax
+S7G8EeISfXX7ESJB8GJkLz2yOAiGrGQPop0dsmw59sDRsGyIW4+FICXd+mgmOel5
+a3DaOQrUYbw4QaCGzI8kMuWvbQP5oWDJpzjwa4Kk+yD7TFp8BXfiqLUkXGnOZhBR
+U17TJPYH/+ULBNjm2z7pzSZ2Rdh4F9Gwegk25Ez4teBuNf0cCQTxkLRAS2/L5/gg
+2MuCPhxz/L2VKAyG6DQMrOadfn4sQppA5TFf46Wb9eXw5jfKBdV2tpASfGblG4t5
+740LefpJMuhxw7Qtvp64SBlaOVaEsSw8D+P71wIDAQABAoIBACdT1k1/wlVbN/QS
+UWnu1hvFcbCoeVPNvWDiD76SqgbVN9V1XNOeEMxM5Ta8Fw+XzYFihBMEfP4xFq//
+vdF1ikqFIaGccZUg6ilwYI/4rrjztGFvHrWcV6qVekRiL1nWVxKZ37yNVsbGsas0
+dgbdX9TfkGe/JZr+fEjZe/y0PKxSxU2XUajHth6XkchcJOwgwV/ZS3Vt/HALy+Ny
+K+ruEl5hoD6ID+YSNdGoaqXfWHnwuiqC3aapzMtrhbsM/d4AguUSnaRIMDCllUK+
+z600xzUlaMiwrppsvpG3vGs+XDH9iz3tX0LfJWpPOF/WWwKAPxoQQwmxtXotTMMz
+h4mR1AECgYEA1L5vSTqv+pBrrFO33HalzHUMdFRNgMfPfWAvc5jGXrXdS6Tdm4wg
+ziwfFRZGi9wENewB95vLZL6pceyh5IkDFuVni14lHJoxfoyEgXkbtp5Q48ZlP2Fk
+kXuXQnL2YgIWxHvI0ysNEZRetEQASK8s8OgkBe+OCKnvS0Y59LOc1vUCgYEAwddM
+kElt1vGBZGCwjae1cnQbPOqdywcejGS4hR5JCBwyQg5RcKU4BJXCFJHSFU+HbJai
+D/9w9LXYHBHbSo6txnMYPNhj/e83FH1xnO0JjwACUhJsWk0XbdAHtLp3x0GUx5vI
+VBNflmro2c/zgcU+ggyBZieSf/ZFUj3ivzcCEBsCgYEAkEDIiOkIZmgC+oiRxSWW
+arp7RW3cV5Qktyi/RCy1ZYb/lMknks9Dd0knkk7WawM2v7FV7CVxltBJaPxBEgtt
+UtseiLu/glNzeBGjz37lMcDLrIbcJEvPu24INIBrXC16bqRYmgc5B1CJnsX1Q1O0
+r21Y78Vtk6ZWob3ukmQv1vkCgYAboNFD24NxWHjF0tY3SokdKBldxF77OieLgSuf
+paJpKoOrUJkhAhuK48GG5wXXjb9SpeGxgAochvKnhZAI/28bUvpIadtOrVLfc8XG
+xS5QmIK8Ke4RrN1DBJykkNNTrjBDhxu1iBFewhwwN2iQvYlcReYHpmpGHNbikvmH
+oZKEswKBgAgKiXRRaVUhqljRpMCMM6sUqjcXi8vKbREVzpDRohpZwqUfideejOKZ
+S/se4GS1TJtxDwQkojUVngAjJwj3gPmpUJ0S7YimrZLvdWdxEMVdqN4Ddv8sKexm
+2gM6x9DYC22HKtI/GVJYwTzjH2sBpvirOssyMoAJGVROWDSXRQo7
+-----END RSA PRIVATE KEY-----
diff --git a/sxc/10.0/xc1-cxa/traefik/certs/root.crt b/sxc/10.0/xc1-cxa/traefik/certs/root.crt
new file mode 100644
index 0000000..90b70c4
--- /dev/null
+++ b/sxc/10.0/xc1-cxa/traefik/certs/root.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDKzCCAhOgAwIBAgIUHJkMNTfH+IReN+4kDmXyKuBNfs8wDQYJKoZIhvcNAQEL
+BQAwJTEjMCEGA1UEAwwaQ29tbWVyY2UgQ29udGFpbmVyIFJvb3QgQ0EwHhcNMjAw
+NjMwMTUzOTQyWhcNNDcxMTE2MTUzOTQyWjAlMSMwIQYDVQQDDBpDb21tZXJjZSBD
+b250YWluZXIgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+ALRe7Z+eb51+bhBkmTgGsYyuZ8wjxOmLX+GqDY3Hbeliiath6UhNy8lFxEKLoLjE
+uLIMuD4AEorp/wTgakWHR4OgTeiqCVtkJ8/PLoMRz39+kAmAjL4cVy7ec/WdRW+C
+R5TsYM6oTr9uWc6rNm0CkkttBA6uZpjiZRe/aKyVslHzhBcE8WFacUto+98S1eRL
+LmCdMH9QXBJ60eSuykG466sUNpKFNQERAu1LxH29g9KVAiYUnafWe1n0QvNn8/7K
+Nrm6TX9HvCmCPu4Sb36Zf/SPul66RBGEZxHG15Uxy4cD6AUqcP4njSD/0Wsnp/Xk
+EAOOZOjGsEQdA+gvkYEPuVMCAwEAAaNTMFEwHQYDVR0OBBYEFLa8TXEwfLPkq9TE
+iPCG+zXF1TeBMB8GA1UdIwQYMBaAFLa8TXEwfLPkq9TEiPCG+zXF1TeBMA8GA1Ud
+EwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAHISregUD4ajS1o+nmyFcm2R
+r5C9wWR/Mq32qEba4xVuFxmi20zryY5L5x/3Bzs7EENJG9hSBY2vtqcU9W9EytzI
+afwHSeccVjLzjqvuYIUcw5AhpRZ3+JhKYII3y7Jo3CjSDU/7wCkRodPJ1m/AZQse
+7mmD0Yn11YX1Lq6f43SUc3fMTkVqg66JJIOGO0Jdb/drm8v68WgadZHZ6PsfpEZs
+XhT4/b7GpKzpbUpvLaMTKPZJIOmavDiOTrzrN78b7KnIUNyGapDgZWwS5yaVl6NH
+b0OyNK1oQsEBCK+yeJNuu0pde4LCEV0znU406flc8V83eb3k8+uN5Y04jjORNes=
+-----END CERTIFICATE-----
diff --git a/sxc/10.0/xc1-cxa/traefik/certs/root.key b/sxc/10.0/xc1-cxa/traefik/certs/root.key
new file mode 100644
index 0000000..a459609
--- /dev/null
+++ b/sxc/10.0/xc1-cxa/traefik/certs/root.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAtF7tn55vnX5uEGSZOAaxjK5nzCPE6Ytf4aoNjcdt6WKJq2Hp
+SE3LyUXEQouguMS4sgy4PgASiun/BOBqRYdHg6BN6KoJW2Qnz88ugxHPf36QCYCM
+vhxXLt5z9Z1Fb4JHlOxgzqhOv25Zzqs2bQKSS20EDq5mmOJlF79orJWyUfOEFwTx
+YVpxS2j73xLV5EsuYJ0wf1BcEnrR5K7KQbjrqxQ2koU1AREC7UvEfb2D0pUCJhSd
+p9Z7WfRC82fz/so2ubpNf0e8KYI+7hJvfpl/9I+6XrpEEYRnEcbXlTHLhwPoBSpw
+/ieNIP/Rayen9eQQA45k6MawRB0D6C+RgQ+5UwIDAQABAoIBAGzDnWiWIloHJhmO
+f/IP3zqk5IRtwUzPNZcfcyLeckG8oKWO2hw2hT8uacVy6wzf2zvKfcMtSgEoTxZC
+uPKKO658mN5GwnOwtm0SUsrIj6YizHpeYQA2mL/zdltSZc9y8PU1gL69MRcwVMlR
+5vTfCxaee0bbFZT1V951FoqTjj7ppLopKNyoDnMHtZbeV4jk7g8L31Pmcj9VZC9s
+V7yrXwhUNBpfrohyrJB8fjLqD8SY2ldX9N+FxDWw+LIbkHI/6vt5MLLB/Gqkf43C
+VLnaBvK+TB77IgKQzWb26RlFv0OO1gCcbcZyE83zWpiS2SJOLCFgXSaA2TPqQ6gm
+Mt5rq1ECgYEA2ldSISPlw369znlcB+21hIDQ6sRHO0wD/qdKfMZKFmN0fSs/Qul1
+x+dMYOPSC6OtZxE5vIAmFKKUISmb9ei6i41IohIjdSjMVmM3DnWDBqjklVlGtdux
+Pb0OtQw2ZejNgce8jvvhiwlFZkdJfFKWfNWP7mwEXAi5p5gl9cxMrKsCgYEA03sP
+NslOwAjBsMPsLgdl8puyPeTRzksqjRDinuB5dxzPWnj6jM84lB6PuaGtuw6H1+us
+Tvpq2YwJhsc14hOzbanXjzIs6vD58B6wlToK+Gmvff5PpGErb5rLjiNj4ccjosDq
+L0jWkTplmZFSbmDxBBKpGaWgzs1Cx5CDUkF1VfkCgYEAklbWWBnsRGQtKTcT5MiA
+0adY3xDgwTCIuOQ9O3XXcDwGdmJHCzzYUTyIZ6QqQtzYOu1DqkClxUzWRYfS3TW3
+2hK+rMnFdB/9HKVw4EMIp60JT8Q/bWIq4DtXoSbnStSG8MYDbj4KBBsZpZx/91CP
+RmoJBv7kyR6b+GU0hBMDDPMCgYBc+fR1ZMnvman2WhzjG7ORlywlFA29wcRCYtMP
+gKdGW+852ohlEdHRJSKRPWjRHZFRt7Z4vpXtcSjbDYg+DeVL6Gjx9uBSpoFsNUHz
+SaJ7FpPmM8G2BlZ/abHmmt6V6+RZ8LDE+yQCk4cJnh98kbhEzyNzOCNb6FhcvsdN
+iaPZmQKBgFgXX8jRhIGos2VBf3HF8dwU5uB+R50CSUubx7d9ZcPoB+Y0REunG/66
+ycUmOMwuKJ9rVq/TGOc61ndpFwj8YkHr4rmCwwrBddAgB87dMbYuMq+uNEcw3fSc
+sWMM9PzPO36wCP2wKXLV4gD3Jp9ioRi67c1Lc6TnpLZEI4vRrSkL
+-----END RSA PRIVATE KEY-----
diff --git a/sxc/10.0/xc1-cxa/traefik/certs/shops.localhost.crt b/sxc/10.0/xc1-cxa/traefik/certs/shops.localhost.crt
new file mode 100644
index 0000000..ca5d0e5
--- /dev/null
+++ b/sxc/10.0/xc1-cxa/traefik/certs/shops.localhost.crt
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC+DCCAeCgAwIBAgIJANWbFRqU1ORDMA0GCSqGSIb3DQEBCwUAMCUxIzAhBgNV
+BAMMGkNvbW1lcmNlIENvbnRhaW5lciBSb290IENBMB4XDTIwMDQxNjE4Mjg1MFoX
+DTMwMDQxNDE4Mjg1MFowGjEYMBYGA1UEAwwPc2hvcHMubG9jYWxob3N0MIIBIjAN
+BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsG2i7OkRJHGWBTkJy4t+VagHpRmB
+OOSAejRNuH+hAIO8tVR/e1/9NYBJFdpuQx1IaxgavvI3fZh3bTnbGUTuPIxjKBO6
+gtEocWbG2VXgV6HHAdISjx3W29xZw5KvjtXHjjbx0Cfvl21EU+KezH1T1C8bVI6A
+bckVfhsFDlU9THJJLx/Ig/kHPTktznp5pv3cUYhQifFUUlC06MMMPQoKpwObjwid
+VrMHA93XpqiqeutlBxlsc1XFxYvOojmPmNoFD4mPTPgnxLLfgZlZ7txohpeP65g3
+9c8YquSCBsBK/Y1AVsAv8FiPv6Ycf4r9fcqg6y3WqnbguJDCQ5MbYFCQowIDAQAB
+ozYwNDAJBgNVHRMEAjAAMAsGA1UdDwQEAwIF4DAaBgNVHREEEzARgg9zaG9wcy5s
+b2NhbGhvc3QwDQYJKoZIhvcNAQELBQADggEBAGpSnzimCkXJBt2tzTOpMbBrNt5S
+tELR86o7fk+zfFQmyixU3b3G2CAwmTUP0P3IGpDuiWnY/Gmuk+zoramdXWQXcNkP
+7BfIzY5JSzdxbZBYfeCmn/Krj/VvdoAtDGMpdtzQcm0PElYPzm4YN5hEyGNovRjo
+E5HzkgcjNEGcsgfXKNqfnrUW2564q6W9D928kPZWVgtFTrKbu8/w4NtBSyuN8zum
+cORVNGp97eKyCYxInkKePtouU5HUrfYXSwqyli3E9CQI8LWURxMozMWK4AiZ9nsL
+pUu+gpgO196kCfadGjK/uZQK/y6PxZ1vMWY0yLNaQPEToELxKXKxJBU/a1A=
+-----END CERTIFICATE-----
diff --git a/sxc/10.0/xc1-cxa/traefik/certs/shops.localhost.key b/sxc/10.0/xc1-cxa/traefik/certs/shops.localhost.key
new file mode 100644
index 0000000..2acd318
--- /dev/null
+++ b/sxc/10.0/xc1-cxa/traefik/certs/shops.localhost.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEogIBAAKCAQEAsG2i7OkRJHGWBTkJy4t+VagHpRmBOOSAejRNuH+hAIO8tVR/
+e1/9NYBJFdpuQx1IaxgavvI3fZh3bTnbGUTuPIxjKBO6gtEocWbG2VXgV6HHAdIS
+jx3W29xZw5KvjtXHjjbx0Cfvl21EU+KezH1T1C8bVI6AbckVfhsFDlU9THJJLx/I
+g/kHPTktznp5pv3cUYhQifFUUlC06MMMPQoKpwObjwidVrMHA93XpqiqeutlBxls
+c1XFxYvOojmPmNoFD4mPTPgnxLLfgZlZ7txohpeP65g39c8YquSCBsBK/Y1AVsAv
+8FiPv6Ycf4r9fcqg6y3WqnbguJDCQ5MbYFCQowIDAQABAoIBAA6ddnKzt/TR6ACU
+wgf3jUahPcjifP7uhuoYrRuMjxTQ1PAciNb6k6o771H9H0c2BMrCW2zX+drQp4wH
+z+ue9zFS29/1Cm1N0FDcl7pnT8dSon63HUx3x1W9Qj5eR2bItNhGGvAIbuOXbKKa
+UldURn58TIJLr73oe3xP1rJiQ0qyxZkEr6hkYTg8SvRU2OumhsnuU4Oa49qxxXEI
+l1tV+Kzs4Zn2FTYA2zVGs7i82Dz4RHfvDpqArQ+ywEaMNSFZSdHW3UtvMYdCe1kS
+Wegccql0fCCG3LG5iRTHnmPCrNCzkEZpbj0YSs2polXrndl0g5CVMNZlzkrMMtLU
+M+8pqukCgYEA6ZdopoyQKgVwQkbEa9Zgqym7bqzWDJIrq7dVoeg/1HowtBMrq6J0
+HOZjP4Gj97fI25wXWooi0IBwqvkcaSDGscOuz5hQSepR+eYkigKcPvgfRzWtN31G
+eWxekSD+IPvGOy8QATgoK+BNUKu4lXuRNehntGjMSEi9GBODetWrSX8CgYEAwVpm
+zBhSS6vOneKKGCpTzKX6vgee3axbiis/qEuUUFm8SuRrMz6Lt/voyzEcOrdqtYt4
+96q0422SuTg0OU3yc3MN87Pg1KL4zIrTN0NT4itwbdIFulMtPxT+mb0bxusUEjfI
+GyxB76/LeaihhKzPmmVumIngUZUyalb2RPNw4t0CgYAgUwhzS65Dcl83fK1/srnL
+1cmPJjG0qaGLcKJT9lym3YXR1XlMlf11ZlhDmIAFLpSH91CwAb+RlMSClFhfH97/
+CHIvXgd2Qwu3Bib2Rigy+ojxhLcEn7xZ3yoy8RrZm52x4PBZCtlcQPzR9gFkBiZx
+DEkViQ8DzbUFGOYv4FOEpwKBgBriDtjhqM+Mm7WoAbtKZ0xU53/0X0pC5JdZXAhy
+ObTSRTPEfoMpdxOlmsBlm58uUU/cjH0i5vOYEIZgIiK1i7gxjwcLQ39NCXqm8qcE
+XW1czMz4HoPBfNEAgkWt3WbS2H+P8eqVRLWmo4vOvmZMALFe2Pmscdvl+pR+cs8z
+acahAoGANEAnbNiRKDVkVnj7RtAKBvzuXuF0OTlRM09icgmBhh4nveJ9RFqVRNVJ
+AVSpHw8FIjv2VwK5mbOI3o4TMn8omQSMRmvD5DAPn5E/lDG3jAvwhzdDmI+XuGMJ
+DVcvKo3qSo+n2fcMHexE+eZLmood0v08LVDLHv6XSQHe2HFsZgo=
+-----END RSA PRIVATE KEY-----
diff --git a/sxc/10.0/xc1-cxa/traefik/certs/xc1cd.localhost.crt b/sxc/10.0/xc1-cxa/traefik/certs/xc1cd.localhost.crt
new file mode 100644
index 0000000..003ef99
--- /dev/null
+++ b/sxc/10.0/xc1-cxa/traefik/certs/xc1cd.localhost.crt
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC+DCCAeCgAwIBAgIJANWbFRqU1ORAMA0GCSqGSIb3DQEBCwUAMCUxIzAhBgNV
+BAMMGkNvbW1lcmNlIENvbnRhaW5lciBSb290IENBMB4XDTIwMDQxNjE4Mjg0OVoX
+DTMwMDQxNDE4Mjg0OVowGjEYMBYGA1UEAwwPeGMxY2QubG9jYWxob3N0MIIBIjAN
+BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5FVNx5bkmdDFPR+l1lAYqw1NdAGk
+HNIPNgYu699LC2Yd8utZCrJQjZo2bveVc6z6KG3yp4Rs7PIMtKKctIcbvRDbWlUn
+u3h6KJCzxPt0f5kQcap1r7QtL6IcwApycB0U6mCBYvxC0iaB+9zGhQDzZ32pUiqr
+1lSJaTsLO+RU4Q9OJHYuX5dRFoLP+AJpZVArbDuXONYySw9wqigcQCNrahsKq704
+PpTACgDf7Ocz+JmwhqldrKhxF4rKvbnVHkGz57Geh4u4hgikM56hZjieQDEzX8Jb
+hv8FxuXUNy2yFTU9kDRK/fXGyDk8X71qyDE9EGwDVS27WU3gzWIiczifXwIDAQAB
+ozYwNDAJBgNVHRMEAjAAMAsGA1UdDwQEAwIF4DAaBgNVHREEEzARgg94YzFjZC5s
+b2NhbGhvc3QwDQYJKoZIhvcNAQELBQADggEBAGnorD0JFUTdP4eUX5+NcoA8dYgp
+U3GVtudacp5Ihvel1tZ5dU698tPlxZLVKHXVqrcYQuQuEW2EOgPxelwMnIg3NGC+
+XNuXxVj42S6YXwpoSwcqc5HqcBaOKIP05KsUXQcWd+sfJvunIHFcagUY/qDLMgH4
+cV+S0QYUdTyfoCJhPNrLUMDJl64+22tSHuxCW16B8OjZcjkzpNkKtwO7CSrwWcZ4
+G+LNJpRjMITqpHM9Fy4NBtaae+f44nzbNAxNg0CA2qAD83fziLilAzkm07ov+Uhc
+9i1ue0nyP4a1hvjAvS5n/wknPS+5VvW5hhXFBBXJPm1UfXLkcTNbvvQ93Zw=
+-----END CERTIFICATE-----
diff --git a/sxc/10.0/xc1-cxa/traefik/certs/xc1cd.localhost.key b/sxc/10.0/xc1-cxa/traefik/certs/xc1cd.localhost.key
new file mode 100644
index 0000000..57eea61
--- /dev/null
+++ b/sxc/10.0/xc1-cxa/traefik/certs/xc1cd.localhost.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEA5FVNx5bkmdDFPR+l1lAYqw1NdAGkHNIPNgYu699LC2Yd8utZ
+CrJQjZo2bveVc6z6KG3yp4Rs7PIMtKKctIcbvRDbWlUnu3h6KJCzxPt0f5kQcap1
+r7QtL6IcwApycB0U6mCBYvxC0iaB+9zGhQDzZ32pUiqr1lSJaTsLO+RU4Q9OJHYu
+X5dRFoLP+AJpZVArbDuXONYySw9wqigcQCNrahsKq704PpTACgDf7Ocz+Jmwhqld
+rKhxF4rKvbnVHkGz57Geh4u4hgikM56hZjieQDEzX8Jbhv8FxuXUNy2yFTU9kDRK
+/fXGyDk8X71qyDE9EGwDVS27WU3gzWIiczifXwIDAQABAoIBAApdcPVxfRkaaAm5
+SQ7sfeIt7Wkpteh1BKnAKBse/MocrZlcY6NfqtZyvKvW41rn7EcvjodaNJOg/UCp
+7REo3PJ9NGfqW65f7rOutepoO8abDSsLwOHj/PUfl8yD7OP3/f4RuW3j46ikhNwJ
+Dp31CBeXlbscIsbM+ZvkSUNDvzKkKEEppxPqmTnRHkm1kwtCNSuKsBX5rhQdUohq
+Ermbpk/QELeAiOY3+BSVrQDfKS4wfkLu/6GX5bd9y+fZUrlS3c2Ncw4oVggUJZ2j
+BUqI5nDQZNVGcTHMae65ITzI1Z54Z2LmrKD1HWo5ANjkPZeGJcnzlwbMXvFR4qcr
+u8Bm56ECgYEA+6FyGvWAEIJP61DQmuPPJ7hdKS1KSUiQ61eSsEHTFKducJEF2Aqr
+7rjc+ah4i5FBROzAfOw30TDohPKtH3wPAyBupjJek1DliSpXMNjT1ePjUQ+jbEX7
+zKmaVwXx0tyW4WYuLtUXrF2kwhsN+ObEBkUKS/mae4LmaS1ay4Ko4VECgYEA6ExL
+vDJFnwbJ0Qxm1b+cV3OD79aPQvM6kkC4FpKh6+6dETxBG6RNeI0jaysIgvEN3KJ+
+Cm9rx3NeQjWlfFq5sVg8Hqiyl+CIwegYSkxSttSz+F7P0FdVVp4xa00bp4UzlXKP
+JInITOYcxoSc/QtbB81qEKUHLntgq/Bd07N+ya8CgYEAi62LpHFgfEmJyWrb0Q7h
+3/+UHxZX5SQV5b1/3L09SXrDcFLgNpN96w7NAvzEpVylKXhuRSnutf17JMl81jxM
+LQUkxraxDv9Z2vEY4zGJLXLJrSaMJb8XTf1bgjD3koAGdOn+etqowHJe0ayo7eBT
+MdPDKndMjIEWG44kl1FZI3ECgYAT2IjT4DugdXUCfhu/ASq7MexArkT5BEypuAvC
+Ke7ZeD5E/a/WS7gup2gyPK/yd+OmSN+ZxqEfnhScdXbY4+tfYlloiSMQ5KbqYgjJ
+ODIM2qkxe/AnLX7l8ofoUeMd8bxRdUMTbQ4Gu9YTg7rhx3mUdhEssNynNPUyW0u4
+zWn0kwKBgDer7UU1MWK/yvpKR/2HwzkYD56W70nKdX3kbWabPXbzHreu0hA/vF3X
+otmfvVYS56LraVk2wuaz2mzHtV3CEgWlZJTh7muG4Kv5ffjDRYnD8KxicfgKW6Uw
+inozlMyJSBouD0hXmEVrAUZKoJ7/BHYmS1sbnJBJ2wJDKc/6FBCu
+-----END RSA PRIVATE KEY-----
diff --git a/sxc/10.0/xc1-cxa/traefik/certs/xc1cm.localhost.crt b/sxc/10.0/xc1-cxa/traefik/certs/xc1cm.localhost.crt
new file mode 100644
index 0000000..cea6050
--- /dev/null
+++ b/sxc/10.0/xc1-cxa/traefik/certs/xc1cm.localhost.crt
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC+DCCAeCgAwIBAgIJANWbFRqU1OQ/MA0GCSqGSIb3DQEBCwUAMCUxIzAhBgNV
+BAMMGkNvbW1lcmNlIENvbnRhaW5lciBSb290IENBMB4XDTIwMDQxNjE4Mjg0OVoX
+DTMwMDQxNDE4Mjg0OVowGjEYMBYGA1UEAwwPeGMxY20ubG9jYWxob3N0MIIBIjAN
+BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzb255KiwPIfIwpvWeUKdReF9Z+BS
+HfYG1lIDpks9KC00ud9j+oXobsYDJoFNWbjJZ0VPt4CWHNu8M68w3D1HyUwnyt2E
+iEH/ggxjvMNI/3xGwqsHZQDheJW4QbBc89oMCtaGkGSjscVmXHWgDDayKw6P6giV
+uUcmTva0ADFXk/IHgC47w5oEz8Ze0php85V66m3W8s7OI3KatXw5kyrf8T2xMnGS
++BA1NBpptU3BC3gIEQ+52f0saUYJs8Dq9btDUB/8hhKCnDmXBoauiWvQcLmdoF1k
+YjAMphed0TyGTJb8+QfZmXhXyQ/JTXCm8PUFP39E1OGkVqmGqpg0JsE/oQIDAQAB
+ozYwNDAJBgNVHRMEAjAAMAsGA1UdDwQEAwIF4DAaBgNVHREEEzARgg94YzFjbS5s
+b2NhbGhvc3QwDQYJKoZIhvcNAQELBQADggEBAFgV0b3qjRk1Hl9bYO18dJhfWppK
+u8qf9Z5piz3yw39i6IodMSM0gPRPCzrHEYdZS+O96XoYBVSl+9h+X8p9V2bh/gL3
+4KR/0YjiZ7i3lCz4RNwTHwQIauUZtcBebIHw0ZRZBrMAKP9jpVXP+GlxLo9K0/pk
+LvA6eqpimL2AhD6jB67MrAf+plj2SlBlKEk/eWlLJ3GjUh3LQG81R31CCi8g3dgR
+afnCxB/1DhAQUOMCN1A8wokzjSfoNXUYNLRZ1mJEpYH24PC14iJjTecSDhUgtdn2
+nZwCFobBWJ5DHs/ZpzBebgZQInP7M4SHUcsxa2FJQKnQQDGQVkSZJWGxGdw=
+-----END CERTIFICATE-----
diff --git a/sxc/10.0/xc1-cxa/traefik/certs/xc1cm.localhost.key b/sxc/10.0/xc1-cxa/traefik/certs/xc1cm.localhost.key
new file mode 100644
index 0000000..2eed42c
--- /dev/null
+++ b/sxc/10.0/xc1-cxa/traefik/certs/xc1cm.localhost.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAzb255KiwPIfIwpvWeUKdReF9Z+BSHfYG1lIDpks9KC00ud9j
++oXobsYDJoFNWbjJZ0VPt4CWHNu8M68w3D1HyUwnyt2EiEH/ggxjvMNI/3xGwqsH
+ZQDheJW4QbBc89oMCtaGkGSjscVmXHWgDDayKw6P6giVuUcmTva0ADFXk/IHgC47
+w5oEz8Ze0php85V66m3W8s7OI3KatXw5kyrf8T2xMnGS+BA1NBpptU3BC3gIEQ+5
+2f0saUYJs8Dq9btDUB/8hhKCnDmXBoauiWvQcLmdoF1kYjAMphed0TyGTJb8+QfZ
+mXhXyQ/JTXCm8PUFP39E1OGkVqmGqpg0JsE/oQIDAQABAoIBADI/chU8db5y0z9k
+XB9Fe6/DgKNMEAItQkI5yZZlrcwQLl5vBrX62mejiMVwsvmEvfuw2+VPTFpD+FUP
+JnnDpbKuHNHZBDNbGxIiAIHrl/p92bJVnvq2GlsfBd9VOX589I/5EOhXC/uw4G0Y
+dTxGZ4FIjzFzY03a6KpEanXZlzAUbdKjUcL5a4cxhpPz1+WIorEOZpmaqVzLyHEM
+ASPY+LMjaPhm1D2YViealoRR2rQsO+pGWqYmLyLGMhvK7rmkm4inqUmegO4qpcmb
+kiiZApBjrOQrl44N1AFMNT7xKeYkVkTiL5WMSrpYwD3HK1LSv/Fd9DwSRkH7+NQg
+nugQHXkCgYEA/DPgBOo2Vywvzw4dJkA9p78wGVxRXjx49s+8JDkQYJh0k90pT6Rs
+cnmqTh9Yhyh1jg1qKZIrwkP24zfdw7J1XdzzxXIY9nZlZUSWTtDzsJUvGrFSbkxU
+Z2+ig420fAM0szaqJFA9vsG/BCBx8LBmAAO+gFSwlzQbocbl3PgXbRsCgYEA0NbD
+aXMSpQZBF+KC8alKUoShUyG2riCpx0NO3/djAWiFnj9wC7mLU2k1YDeu7p5ZMddW
+y1q1qRUyqrj3vtAQGwqmFyIuSXEq2cEmRwXs7RH7FriHDBEaBWH1LIKzf5kHwWgn
+EK4WzHywFcbuQKHlobeEKBxpsmGAxBmjITUj/fMCgYBtmCFOIXURtorkAC8ckyf3
+wDYnnx1gxQiPwD/ywbVjNHzcUGwGRt41dLdUEX0H5sYGv7+VZwaK+bvMi1dcFi24
+Zy6ra2R7nYF8Wyyx/U0YPAvnHo1CjvrSpAlL/4Uhqsb45dVTyGa8gTb/lRXOUOlS
+Mk5TN/oxCpzDVUpIFqsfZwKBgBDuKD9nPc61GBfYnCb9Q3I3IGD97bJmIX1u/nj3
+tEYL9DElEW9R5nKnp9UaDot3uOFqhLXNr8Z6WnYusp78fSHEFjzv33LCwueOWg0N
+9OwvNfzcjs4yoLpo+5hVLDoe7NsIF4qpol2Hijrpuqzwsw4OM5+Q1hzI/MhpD6mE
+hltzAoGBAPL5zqdtDKxct2DVubTe2qAc0EZQSoyXM5mjzkb643jOVLuomjBRbSl5
+kMYs/NhYuNjtYXH2S442znZhUACFL9KSj6a3Y7GvwZVstg62wAiEU7n9L+LuKGxS
+2Lq4gS345ptSpHScrx4ETh7gOG5/zl6uBlOQ+po5Q2fPn5YV+a15
+-----END RSA PRIVATE KEY-----
diff --git a/sxc/10.0/xc1-cxa/traefik/certs/xc1id.localhost.crt b/sxc/10.0/xc1-cxa/traefik/certs/xc1id.localhost.crt
new file mode 100644
index 0000000..2afd529
--- /dev/null
+++ b/sxc/10.0/xc1-cxa/traefik/certs/xc1id.localhost.crt
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC+DCCAeCgAwIBAgIJANWbFRqU1ORBMA0GCSqGSIb3DQEBCwUAMCUxIzAhBgNV
+BAMMGkNvbW1lcmNlIENvbnRhaW5lciBSb290IENBMB4XDTIwMDQxNjE4Mjg0OVoX
+DTMwMDQxNDE4Mjg0OVowGjEYMBYGA1UEAwwPeGMxaWQubG9jYWxob3N0MIIBIjAN
+BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAo3Hb47BHkqP+JeM/MxEWJILBNFmu
+pimCBFkdvOkzICs6DB8ikcotZlXOozfQ/z21VcY8/OnH34Vj69PRANqihTAx7010
+QcL5ArONEN7T8D01D/yUw8O8zr1Th3ZmR8bbIm5eaiCVFF3HLL32QaWsF2MGjyMf
+QPSqSilyo70jYbAi5T/yRUOBQ8OMT3nWiOYwJReDT1PqTRYPFgf87AqMQWOuksfT
+UEAPin7nz3UmdMJrBph6QzlHgIB1u9UkuIhZEnapALyDS5oTcQtbrnolUjJEaZww
+LYhTPgU5U2UqdLJuNZ4XprDZziFM5en7/pka+un3V/dsiEYlMF9ImdfZOwIDAQAB
+ozYwNDAJBgNVHRMEAjAAMAsGA1UdDwQEAwIF4DAaBgNVHREEEzARgg94YzFpZC5s
+b2NhbGhvc3QwDQYJKoZIhvcNAQELBQADggEBAAq2MwX8erGUSJ0eSgybIZpDSVPK
+/T6vyKR+Nxy8Py8wiQjF3C/qRZ5OagZ5FtTRsO+jLN9dDq5c58/SlVP8NQiycwJd
+t+VD1AMrMNd5agy2Vde+MEc3bOv5erPqveGwGbqrsShclDB8OwsBbhUhe7kf0DGF
+evY/cQnkOVCyh/e7ybqJhQHR+o7pqws7tVXBQlVSAf40kVrzssvpXybXgm+O03dJ
+83ts5SGUYqI1vS6E/WJX2NBDGYGmBzZwB7eyILxRkvuzKl1vEz+RgxhNGl26Aac4
+ZxOKTefB4ggGvTTI3vtZqj5CBcAZMjtnRc9MT1XSSqLWfdwmvp35TJ1uUn0=
+-----END CERTIFICATE-----
diff --git a/sxc/10.0/xc1-cxa/traefik/certs/xc1id.localhost.key b/sxc/10.0/xc1-cxa/traefik/certs/xc1id.localhost.key
new file mode 100644
index 0000000..2b775bb
--- /dev/null
+++ b/sxc/10.0/xc1-cxa/traefik/certs/xc1id.localhost.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAo3Hb47BHkqP+JeM/MxEWJILBNFmupimCBFkdvOkzICs6DB8i
+kcotZlXOozfQ/z21VcY8/OnH34Vj69PRANqihTAx7010QcL5ArONEN7T8D01D/yU
+w8O8zr1Th3ZmR8bbIm5eaiCVFF3HLL32QaWsF2MGjyMfQPSqSilyo70jYbAi5T/y
+RUOBQ8OMT3nWiOYwJReDT1PqTRYPFgf87AqMQWOuksfTUEAPin7nz3UmdMJrBph6
+QzlHgIB1u9UkuIhZEnapALyDS5oTcQtbrnolUjJEaZwwLYhTPgU5U2UqdLJuNZ4X
+prDZziFM5en7/pka+un3V/dsiEYlMF9ImdfZOwIDAQABAoIBAAE98j/OrRyOJnY/
+PdGzhYmNfM5bCBq3IgfKbZFr7DmIWo6RBgA5mxK2ADX5TJtD6sbWFMyPMjeemd3G
+5EWvY6DDdv2shv+g7ad5mc7RAqdGr8qJTtAWAq9HfQUAf1J4Tl36nLkNulRHSiYq
+414oViBvXjNkPu6NbWXW3soju8sYOm/QCqfjwzrHRZVgTHFg0ktQJZsu/Mz190Pc
+00Rf1F5ckU8VaaZ3yXTy3nQsNlypTEl7k20jn2LirPlmrKEveKYvftXuX/W5/Bso
+p55ZxkPRsT9AIIKAM9l2jIS9WnzJ+LxFkVZnWe2mIiks50shHGhS9+tfmAM/Xyhx
+ZUI2mNECgYEAzSao1ZWmGezhbUZAhlxak7FvJqiALCiOfrbnuxHG7yh9DG+uMCPW
+Iwz2cXJyUZN9iixJ6bZ3LoOc7AHA+whqzn5o+e28gO2/QC9WWTwl2LSpMZmeefA3
+E8wDb4N5gN1iW7oOwN/tZ5kkjXapjrQYFzxN/REdey+vlTXDRMlgx/0CgYEAy/TV
+lgnfp9UVVz/GQfJSNIsT11dbdjOOpQWiPy4Bbrvjt+ggdPhE808Zu71Pqkc6HBT6
+0ftBUD6n+sef+Gkfrr0ahj6WK3BjpnW/60+vfB4SSt+8CTGkWEq74tpEejmEwBvK
+JGnhFzgKNgXWSlF+KxpunZInXeS6Vn/6wTAnX5cCgYA2nhxFANp//HjnxtRW8S+M
+MqkM+b9mAkYtpjR7sXftJDJmpTUSy/euzTyvZ3DYFxRNPQ1Qk6uXTqLwkmb2bn9B
+CpaYM5sEGEfapr+ucj0BPNfuxJ9Uh4eiVaZ0geRPUqFlGlvjLbre4f7BSt5Jh9kC
+FqQMxAm9SizM5Mtf/N0vYQKBgFL4ni80gxT+vXjKC/hmAQU5EvBGrIGQhdYiTZfQ
+Omr26rO1LgcHvN0Sb9CNOix2X3BvJH5p7W8cni+KKEzhTy9B5Nl5+pNfXFqqilHL
+EAO5JA3rqM5AsK/ubzLhQnxKi/OvGnPn0tckSBskEsIXFvGoBhn6DCPJWfi4haUz
+1sCvAoGBAK5Ud04lCzVg9fsgIEU5twwreA+yyVdKOt15vJAdylSsd+L62Bai3tEb
+yx3VoDNoGHS8DNSV8ACOVZUOQAY/GNrALHwuYWrIcy/5tpulYZ2TyYhByyvhAmdu
+N6mB5IKZ/5jDMp/J+iPYGm1JlWBSHFK/BPhCn3Oxzt7GZghlccA2
+-----END RSA PRIVATE KEY-----
diff --git a/sxc/10.0/xc1-cxa/traefik/certs/xc1sxacd.localhost.crt b/sxc/10.0/xc1-cxa/traefik/certs/xc1sxacd.localhost.crt
new file mode 100644
index 0000000..94d8a4e
--- /dev/null
+++ b/sxc/10.0/xc1-cxa/traefik/certs/xc1sxacd.localhost.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDCTCCAfGgAwIBAgIUSvZs9CHMQo778jISK4j6r8GYrRcwDQYJKoZIhvcNAQEL
+BQAwJTEjMCEGA1UEAwwaQ29tbWVyY2UgQ29udGFpbmVyIFJvb3QgQ0EwHhcNMjAw
+NjMwMTUzOTQzWhcNMzAwNjI4MTUzOTQzWjAdMRswGQYDVQQDDBJ4YzFzeGFjZC5s
+b2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDAMAZYu1ra
+1yFufiD5WmuG+d9fTq569dzyLlvajpFhOPSI0mxjoil48yIctEk7Lp0bcYNNQPmj
+eLiTwQhlLhgXonV6bOSJOhlJBREaJnxz7Z8+XSeMIR+ZgXGAA0VYrT53wHh11g8W
+J7HZDe5pwiFgaeVJgMSEbFSu56HsNfb6b4rriKXxoXXQDKBrAnQeI326Wu72/oOU
+ZhERZnpY8hcpZwgZCwtgcR5T8xzApZyemkM4ciSfmhJXXtb4ssxZaGk7oAXQwRI2
+/QaA9w6b6cBvHinGOK0AjkOd2hjesxvKEd5Fg7YVnfrVI4p95QPp6BUH6RFa+Rfi
+vGp7DTUvB77pAgMBAAGjOTA3MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgXgMB0GA1Ud
+EQQWMBSCEnhjMXN4YWNkLmxvY2FsaG9zdDANBgkqhkiG9w0BAQsFAAOCAQEAZ6Ih
+Cm9pyv/WcM3qKBShrYRVhie5VG0FYokW2D7sTjTFJhwAAWm38UWPZg8hfYXqPhFm
+llcmhJmd8xKZ2XgFBNGzpzNd6rc1KXFocMupo0Ie9ykjV+N56Eiwpn80HjGoiUic
+bKKi+k911uH7aOvFIKg5/Gk7KKZ1mGcicKTYt2FqfrCy62aeunWvExLCKQo5Ip/g
+UNwk8DN5/up/kZbrQIF8+L2U7r53QzWI73bRi3nIbKvXpX8cfAywQFmebt4WLeRj
+TbG4pYeaA0GU2joalr+2kL9HuqEZ/F1nl4JQhrPXaymnQpgiRmdfQYvqtGEUuLJF
+O4QRVoxz+4an4YrDaw==
+-----END CERTIFICATE-----
diff --git a/sxc/10.0/xc1-cxa/traefik/certs/xc1sxacd.localhost.key b/sxc/10.0/xc1-cxa/traefik/certs/xc1sxacd.localhost.key
new file mode 100644
index 0000000..e52f8bf
--- /dev/null
+++ b/sxc/10.0/xc1-cxa/traefik/certs/xc1sxacd.localhost.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEpAIBAAKCAQEAwDAGWLta2tchbn4g+VprhvnfX06uevXc8i5b2o6RYTj0iNJs
+Y6IpePMiHLRJOy6dG3GDTUD5o3i4k8EIZS4YF6J1emzkiToZSQURGiZ8c+2fPl0n
+jCEfmYFxgANFWK0+d8B4ddYPFiex2Q3uacIhYGnlSYDEhGxUrueh7DX2+m+K64il
+8aF10AygawJ0HiN9ulru9v6DlGYREWZ6WPIXKWcIGQsLYHEeU/McwKWcnppDOHIk
+n5oSV17W+LLMWWhpO6AF0MESNv0GgPcOm+nAbx4pxjitAI5DndoY3rMbyhHeRYO2
+FZ361SOKfeUD6egVB+kRWvkX4rxqew01Lwe+6QIDAQABAoIBAD/vOg1GtqDatIp3
+dyy8wcyzT3X7TNwm8ou2lGQOzZpUQjVKGzjB953+9DgsWbhQd39rscx/cwzI2k59
+Bvfx753dM8u4cgacx1CdWOUkLH68bB9pCgD5+/MrNsDpVaZ8a62W3/wDbB1osyeM
+FOYl6MiUMezT44xSJZHSCPH1ueXxpZR4q1Ys3uIwM/yrQ8JtpYcKnhOtcndkglDx
+zUbVtrSQf1GGw8LLZiKGtqufLAC3vDLnHSuaA6wAkQRItlYHh/XNu024vUK6VOdS
+QvdHm10AF0Dnfn9ff7RIqFLYBj0a0JI+277EE+Ns6wKNOkOKTdLhPWwWl8pCSoS4
+CI/wiQECgYEA7PBrhzFUOoq82izxG7FKsk3KRJUrB6WLQl0FY/e/XXktY1XBzBm5
+7soQIbIrV4fnUJQ4VE3HM5k/+pYu4wM8h+B84xEgvpDyHsNWeS9S/HmHuuyETy1n
+yJPRPABJFI3ychtFjbasPhN5jASO83Tz0qItNaaOqvsINdy4F1Nf8zkCgYEAz6X7
+JBJ4VfuzIiwie9fA3WehubC2+QXbj/YoIsuXyGLavux/7S5ZVRcuL6guy+N7udl4
+6iTKcqUtesBiZHR3qd70//+esd99TPAOsnq4OQU2AR7/T61dTaWiyzbx8QFyd064
+ZHiXSt1RnkoVWyaUwc7iEDMWtMGioVyGCtwWuTECgYEAjjESNsXRyHguMbi60WWq
+cCri8hmbAzHDywXMEFxDybLJHE4AyZ2+yaEV4ULtY9A5b1AkJeOvYjXcAWRTqwTs
+NJbyG8rRncuaof+US5Gs+bttSy5ZkLKtD+A1tw5szRsKnpPjP9Kat340eWTa7RwI
+nyWYgBP+lnmkSb6187mjYXECgYEAvCTDUiLeH+JIo/zjXdzWpoXAlpSUpTv2fhFm
+umhIZcuUMgvtuYUWci/nrEyx4hGDSJjQoy6ktI4PkDqCrEyPJD6dNNty+e3rBWw5
+lOP2yct77DYe1R3a/YDH6WMmgt1xzsJn9rkBNFcmHcs4YHerr5N5Z34y46LTbWt9
+FJfoivECgYBQlGZjaXEyN2xwv789NNp/RFKqdAM7Ec8ENN1WAAJ0Zr0mGTM6Fqp9
+idmMCMt/MtAFeNvwZXBk1rQ1jdD6uzxc7GPMgz+ImwVM/+5i3Fr0d9JNJ7H+/7U0
+wILN3LYJxqHocOzRCMI2o/HX8c5xkZG1/Yh1keN49CsYYaxZKeG+Qg==
+-----END RSA PRIVATE KEY-----
diff --git a/sxc/10.0/xc1-cxa/traefik/certs/xc1sxacm.localhost.crt b/sxc/10.0/xc1-cxa/traefik/certs/xc1sxacm.localhost.crt
new file mode 100644
index 0000000..0f545d4
--- /dev/null
+++ b/sxc/10.0/xc1-cxa/traefik/certs/xc1sxacm.localhost.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDCTCCAfGgAwIBAgIUSvZs9CHMQo778jISK4j6r8GYrRYwDQYJKoZIhvcNAQEL
+BQAwJTEjMCEGA1UEAwwaQ29tbWVyY2UgQ29udGFpbmVyIFJvb3QgQ0EwHhcNMjAw
+NjMwMTUzOTQyWhcNMzAwNjI4MTUzOTQyWjAdMRswGQYDVQQDDBJ4YzFzeGFjbS5s
+b2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC24GRLKvhF
+6q+L9YHyoMQvswjs+JZwZI0ZzYdwtzWwRyZUO+Sg2rzJtfj5biu7zaXn9WTJVLvm
+d/bkZbjgjJVk7F9s1EvMhsYmOPxKXo7tK5LqF67naVpU6cGXAPrK6w0S1T4mcFjy
+ng8dJsWvXRGx62+bpEvdX0EWyNIEaN9IwoGuaOM7c7jwrDPooHPNadBjsvDNnM9p
+tMdz+JcejRfws2YxXfke4cRhO7fgbiFW6N/wAiQNpMI1pih8yz4Xe4QAYldD6hi2
+igNo57c8a55mCH5thwzHM0U+bKR3aophDajGAWYKzgAZkWuTvWiTkIsRlDhl3ywI
++9bCIk0ItB4pAgMBAAGjOTA3MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgXgMB0GA1Ud
+EQQWMBSCEnhjMXN4YWNtLmxvY2FsaG9zdDANBgkqhkiG9w0BAQsFAAOCAQEATJDL
+WTzYsjkHsYrYWC2lQHjsrDQ6jV3dFzoBVdLpUcrJoJ9t8qSMZqju9zF5RVpBeH8z
+Yf4HpEgmf7nDbUP/qju3drRwhDTJMdZ50newukBZzxkemJoogCTJn/J+ckPulOVx
+e2V/K9f05yCuLszVuPMek0/PBkwSSAmKfZzHKjC1Z/OwoznK4EgzbaR8icu908fw
+Qf/ZT0Ka69ccGt8ygaTzT2cI1WCEg2iCx78CGq+UzU+GggvOlT9UZrxiwfOpjyJx
+UdrN/+GlTYlBqXLactbGxflfhlSmAw0hPan2kciM3aawtf1P5dKURo08m9KF/ujd
+EivR1AhBncSYf6MgAQ==
+-----END CERTIFICATE-----
diff --git a/sxc/10.0/xc1-cxa/traefik/certs/xc1sxacm.localhost.key b/sxc/10.0/xc1-cxa/traefik/certs/xc1sxacm.localhost.key
new file mode 100644
index 0000000..f33895a
--- /dev/null
+++ b/sxc/10.0/xc1-cxa/traefik/certs/xc1sxacm.localhost.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEpQIBAAKCAQEAtuBkSyr4Reqvi/WB8qDEL7MI7PiWcGSNGc2HcLc1sEcmVDvk
+oNq8ybX4+W4ru82l5/VkyVS75nf25GW44IyVZOxfbNRLzIbGJjj8Sl6O7SuS6heu
+52laVOnBlwD6yusNEtU+JnBY8p4PHSbFr10Rsetvm6RL3V9BFsjSBGjfSMKBrmjj
+O3O48Kwz6KBzzWnQY7LwzZzPabTHc/iXHo0X8LNmMV35HuHEYTu34G4hVujf8AIk
+DaTCNaYofMs+F3uEAGJXQ+oYtooDaOe3PGueZgh+bYcMxzNFPmykd2qKYQ2oxgFm
+Cs4AGZFrk71ok5CLEZQ4Zd8sCPvWwiJNCLQeKQIDAQABAoIBAQCehvgJ/Q7JNP7F
++aWTGO/YVX+4RGnMti1mn7b366mbzKGaRW0UT2l2Bcv1FR7OJx/ZauzaZhyYVYft
+R4yzAssCeLDj20h13KLqQV3abgvB5pLtYGha7AXFM/mAF/ZPbuCfYcEFe0Bv2LpL
+T+/v62LKc8gFCLBHDyqSQLVl4y8jlxm6KnEkKKutqSNZuJOslou7CwBMnRHAZHVh
+pUKNCP7nG3P2fglLtV99JXjPdcK4pK5SAJYDi7b5gFVI2mpPKN7jv3WghFHMcgL1
+uDb0/A+/4P6OFwxFwKctIKwJvkFLQR4n9NUxNnbnz/SBD6uIKtEprv84A67JZEwC
+hhu7GFLtAoGBANwdf/j10L6q5o5ScB7toPCn9OCVU1kPJ3mB90HpimoriqGtdS1c
+xDuH5xrtdEBaCIjyWdkMxokbwTK2W+ww7QUylc7jlDYcwAxtL5irHgcIYIQUVlYW
+FvIjHWKlhs2hEA6bJc8dx+pKjnYYEfDP398KJiX6NUiLna7c/FPAN0IzAoGBANSw
+vHOMvYYyVnh2aDhDhMsWhBOQr/U/+BjifNGrr96DTxnvOUpkTGSxkFHtHGnPshax
+mSJX+BKWAH09H8tYAxw6iSef2/SvX9RCi+EZGK9/JIWhFDlYOOcwfUFeDXye0Hm/
+7AJl1xlMt176GT6U9H9TWD1w34o8VZnwJJI55FozAoGAUuQpFTA89BCX0nDpGDyU
+pwwZA5o4UQmL7A4tdvzjyyeqhUg1IGgW3fRH67QQW0uMe0YI39wXx/pTvy09YKzs
+FVD/aXH6loYtLIDRs8R9Alj9P8AI41JeQcFHh6aeJUHKMjXq/xxP9MMu8voNh4pA
+3FWOGC8pcbBiKT+/Jir0pFECgYEAnIUXmh1Xl/tRYUMZ/VXK0r3WIqPWqbASvxVl
+79LeEO0m+BnxWkqnYW6+m1vYDhI3p7W40OpV+C+FWqTx0e4KE+sL5iohb1bkOctj
+LxsN7JCvatuYi37eGVy4wLMbT7t8Bizz3OvfOJIZW/7HNyPdLhpClKyNBSjTgf6U
+mzuZTbsCgYEAyAFpPrTzU204kV4D1VVNDi1ifK2vaJrkoYklySGykmukeUbXhbeV
+/2sMygIrMNw/rO5qEdn8pYNr71Ahh8KbvIx5cw02qwMqH4pDdk4nlucdg2dUAXvm
+u9oMJehJkgcB3+fF8+kwZUZfSN6ox40ONj12w/PgbOPTN5JNPlCYk6E=
+-----END RSA PRIVATE KEY-----
diff --git a/sxc/10.0/xc1-cxa/traefik/config/dynamic/certs_config.yaml b/sxc/10.0/xc1-cxa/traefik/config/dynamic/certs_config.yaml
new file mode 100644
index 0000000..0205a71
--- /dev/null
+++ b/sxc/10.0/xc1-cxa/traefik/config/dynamic/certs_config.yaml
@@ -0,0 +1,18 @@
+tls:
+ certificates:
+ - certFile: C:\etc\traefik\certs\xc1cm.localhost.crt
+ keyFile: C:\etc\traefik\certs\xc1cm.localhost.key
+ - certFile: C:\etc\traefik\certs\xc1cd.localhost.crt
+ keyFile: C:\etc\traefik\certs\xc1cd.localhost.key
+ - certFile: C:\etc\traefik\certs\xc1id.localhost.crt
+ keyFile: C:\etc\traefik\certs\xc1id.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
+ - certFile: C:\etc\traefik\certs\ops.localhost.crt
+ keyFile: C:\etc\traefik\certs\ops.localhost.key
\ No newline at end of file
diff --git a/sxc/10.0/xc1/.env b/sxc/10.0/xc1/.env
new file mode 100644
index 0000000..bea3c89
--- /dev/null
+++ b/sxc/10.0/xc1/.env
@@ -0,0 +1,15 @@
+BASE_SITECORE_DOCKER_REGISTRY=scr.sitecore.com/base/
+
+XP_SITECORE_DOCKER_REGISTRY=scr.sitecore.com/sxp/
+XP_SITECORE_TAG=10.0.0-ltsc2019
+
+XC_SITECORE_DOCKER_REGISTRY=scr.sitecore.com/sxc/
+XC_PACKAGES_TAG=10.0.0-ltsc2019
+
+TRAEFIK_IMAGE=traefik:v2.2.0-windowsservercore-1809
+TRAEFIK_ISOLATION=default
+
+SITECORE_MASTER_DB=Sitecore.Master
+SITECORE_CORE_DB=Sitecore.Core
+XC_GLOBAL_DB=SitecoreCommerce_Global
+XC_SHARED_DB=SitecoreCommerce_SharedEnvironments
diff --git a/sxc/10.0/xc1/cd/Content/Website/App_Config/Include/Domains.Shared.config b/sxc/10.0/xc1/cd/Content/Website/App_Config/Include/Domains.Shared.config
new file mode 100644
index 0000000..32579a3
--- /dev/null
+++ b/sxc/10.0/xc1/cd/Content/Website/App_Config/Include/Domains.Shared.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/sxc/10.0/xc1/cd/Content/Website/App_Config/Include/Y.Commerce.Engine/Y.Sitecore.Commerce.config b/sxc/10.0/xc1/cd/Content/Website/App_Config/Include/Y.Commerce.Engine/Y.Sitecore.Commerce.config
new file mode 100644
index 0000000..9e9836c
--- /dev/null
+++ b/sxc/10.0/xc1/cd/Content/Website/App_Config/Include/Y.Commerce.Engine/Y.Sitecore.Commerce.config
@@ -0,0 +1,24 @@
+
+
+
+ $(env:Sitecore_xc_Shops_Url)
+ $(env:Sitecore_xc_Ops_Url)
+ $(env:Sitecore_xc_Minions_Url)
+ $(env:Sitecore_Identity_Server_Authority)
+ $(env:Sitecore_Identity_Server_InternalAuthority)
+ false
+ $(env:Sitecore_xc_Client_Secret_Hash)
+
+
+
+
+
+
+ $(env:Sitecore_xc_ConnectionStrings_Redis)
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/sxc/10.0/xc1/cd/Permissions/AdditionalWriteAllowedFolders.txt b/sxc/10.0/xc1/cd/Permissions/AdditionalWriteAllowedFolders.txt
new file mode 100644
index 0000000..de6cedf
--- /dev/null
+++ b/sxc/10.0/xc1/cd/Permissions/AdditionalWriteAllowedFolders.txt
@@ -0,0 +1 @@
+C:\inetpub\wwwroot\App_Config\Security-Shared
\ No newline at end of file
diff --git a/sxc/10.0/xc1/cd/tools/GrantWritePermission.ps1 b/sxc/10.0/xc1/cd/tools/GrantWritePermission.ps1
new file mode 100644
index 0000000..ac9190f
--- /dev/null
+++ b/sxc/10.0/xc1/cd/tools/GrantWritePermission.ps1
@@ -0,0 +1,24 @@
+param(
+ [Parameter(Mandatory=$true, ParameterSetName="Array")]
+ [string[]] $TargetFolders,
+
+ [Parameter(Mandatory=$true, ParameterSetName="File")]
+ [string] $TargetFoldersFile,
+
+ [Parameter(Mandatory=$true)]
+ [string] $User
+)
+
+if ($TargetFoldersFile) {
+ $TargetFolders = Get-Content -Path $TargetFoldersFile
+}
+
+$TargetFolders | ForEach-Object {
+ If (-not [string]::IsNullOrEmpty($_)) {
+ If (!(Test-Path $_)) {
+ New-Item -Path $_ -ItemType Directory -Force
+ }
+
+ cmd /C icacls $_ /grant ($User + ":(OI)(CI)M")
+ }
+}
\ No newline at end of file
diff --git a/sxc/10.0/xc1/cd/tools/Invoke-XdtTransformations.ps1 b/sxc/10.0/xc1/cd/tools/Invoke-XdtTransformations.ps1
new file mode 100644
index 0000000..b9e51d5
--- /dev/null
+++ b/sxc/10.0/xc1/cd/tools/Invoke-XdtTransformations.ps1
@@ -0,0 +1,43 @@
+[CmdletBinding()]
+param(
+ [Parameter(Mandatory = $true)]
+ [ValidateScript({ Test-Path $_ -PathType Container })]
+ [string]$TargetPath,
+ [Parameter(Mandatory = $true)]
+ [string]$XdtPath,
+ [Parameter(Mandatory = $true)]
+ [ValidateScript({ Test-Path $_ -PathType Leaf })]
+ [string]$XdtDllPath
+)
+
+if (-not (Test-Path $XdtPath -PathType Container)) {
+ Write-Verbose "Transformations source '$XdtPath' does not exist."
+ return
+}
+
+$transformations = @(Get-ChildItem $XdtPath -File -Recurse)
+
+if ($transformations.Length -eq 0) {
+ Write-Verbose "No transformations in '$XdtPath'."
+ return
+}
+
+Add-Type -Path $XdtDllPath
+
+$transformations | ForEach-Object {
+ $targetFullPath = (Resolve-Path $TargetPath).Path
+ $xdtFullPath = (Resolve-Path $XdtPath).Path
+ $targetFilePath = $_.FullName.Replace($xdtFullPath, $targetFullPath).Replace(".xdt", "")
+
+ $targetDocument = New-Object Microsoft.Web.XmlTransform.XmlTransformableDocument;
+ $targetDocument.PreserveWhitespace = $true
+ $targetDocument.Load($targetFilePath)
+
+ $transformation = New-Object Microsoft.Web.XmlTransform.XmlTransformation($_.FullName)
+ if ($transformation.Apply($targetDocument) -eq $false) {
+ throw "Transformation '$($_.FullName)' on '$($targetFilePath.FullName)' failed."
+ }
+
+ $targetDocument.Save($targetFilePath)
+ Write-Verbose "Transformation '$($_.FullName)' on '$($targetFilePath.FullName)' completed."
+}
\ No newline at end of file
diff --git a/sxc/10.0/xc1/cd/xdts/Web.config.xdt b/sxc/10.0/xc1/cd/xdts/Web.config.xdt
new file mode 100644
index 0000000..72d7ecb
--- /dev/null
+++ b/sxc/10.0/xc1/cd/xdts/Web.config.xdt
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sxc/10.0/xc1/cm/Content/Website/App_Config/Include/Domains.Shared.config b/sxc/10.0/xc1/cm/Content/Website/App_Config/Include/Domains.Shared.config
new file mode 100644
index 0000000..32579a3
--- /dev/null
+++ b/sxc/10.0/xc1/cm/Content/Website/App_Config/Include/Domains.Shared.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/sxc/10.0/xc1/cm/Content/Website/App_Config/Include/Y.Commerce.Engine/Y.Sitecore.Commerce.config b/sxc/10.0/xc1/cm/Content/Website/App_Config/Include/Y.Commerce.Engine/Y.Sitecore.Commerce.config
new file mode 100644
index 0000000..9545f59
--- /dev/null
+++ b/sxc/10.0/xc1/cm/Content/Website/App_Config/Include/Y.Commerce.Engine/Y.Sitecore.Commerce.config
@@ -0,0 +1,30 @@
+
+
+
+ $(env:Sitecore_xc_Shops_Url)
+ $(env:Sitecore_xc_Ops_Url)
+ $(env:Sitecore_xc_Minions_Url)
+ $(env:Sitecore_Identity_Server_Authority)
+ $(env:Sitecore_Identity_Server_InternalAuthority)
+ false
+ $(env:Sitecore_xc_Client_Secret_Hash)
+
+
+
+
+
+
+ $(env:Sitecore_xc_ConnectionStrings_Redis)
+
+
+
+
+
+
+
+ true
+
+
+
+
+
\ No newline at end of file
diff --git a/sxc/10.0/xc1/cm/Permissions/AdditionalWriteAllowedFolders.txt b/sxc/10.0/xc1/cm/Permissions/AdditionalWriteAllowedFolders.txt
new file mode 100644
index 0000000..de6cedf
--- /dev/null
+++ b/sxc/10.0/xc1/cm/Permissions/AdditionalWriteAllowedFolders.txt
@@ -0,0 +1 @@
+C:\inetpub\wwwroot\App_Config\Security-Shared
\ No newline at end of file
diff --git a/sxc/10.0/xc1/cm/tools/GrantWritePermission.ps1 b/sxc/10.0/xc1/cm/tools/GrantWritePermission.ps1
new file mode 100644
index 0000000..ac9190f
--- /dev/null
+++ b/sxc/10.0/xc1/cm/tools/GrantWritePermission.ps1
@@ -0,0 +1,24 @@
+param(
+ [Parameter(Mandatory=$true, ParameterSetName="Array")]
+ [string[]] $TargetFolders,
+
+ [Parameter(Mandatory=$true, ParameterSetName="File")]
+ [string] $TargetFoldersFile,
+
+ [Parameter(Mandatory=$true)]
+ [string] $User
+)
+
+if ($TargetFoldersFile) {
+ $TargetFolders = Get-Content -Path $TargetFoldersFile
+}
+
+$TargetFolders | ForEach-Object {
+ If (-not [string]::IsNullOrEmpty($_)) {
+ If (!(Test-Path $_)) {
+ New-Item -Path $_ -ItemType Directory -Force
+ }
+
+ cmd /C icacls $_ /grant ($User + ":(OI)(CI)M")
+ }
+}
\ No newline at end of file
diff --git a/sxc/10.0/xc1/cm/tools/Invoke-XdtTransformations.ps1 b/sxc/10.0/xc1/cm/tools/Invoke-XdtTransformations.ps1
new file mode 100644
index 0000000..b9e51d5
--- /dev/null
+++ b/sxc/10.0/xc1/cm/tools/Invoke-XdtTransformations.ps1
@@ -0,0 +1,43 @@
+[CmdletBinding()]
+param(
+ [Parameter(Mandatory = $true)]
+ [ValidateScript({ Test-Path $_ -PathType Container })]
+ [string]$TargetPath,
+ [Parameter(Mandatory = $true)]
+ [string]$XdtPath,
+ [Parameter(Mandatory = $true)]
+ [ValidateScript({ Test-Path $_ -PathType Leaf })]
+ [string]$XdtDllPath
+)
+
+if (-not (Test-Path $XdtPath -PathType Container)) {
+ Write-Verbose "Transformations source '$XdtPath' does not exist."
+ return
+}
+
+$transformations = @(Get-ChildItem $XdtPath -File -Recurse)
+
+if ($transformations.Length -eq 0) {
+ Write-Verbose "No transformations in '$XdtPath'."
+ return
+}
+
+Add-Type -Path $XdtDllPath
+
+$transformations | ForEach-Object {
+ $targetFullPath = (Resolve-Path $TargetPath).Path
+ $xdtFullPath = (Resolve-Path $XdtPath).Path
+ $targetFilePath = $_.FullName.Replace($xdtFullPath, $targetFullPath).Replace(".xdt", "")
+
+ $targetDocument = New-Object Microsoft.Web.XmlTransform.XmlTransformableDocument;
+ $targetDocument.PreserveWhitespace = $true
+ $targetDocument.Load($targetFilePath)
+
+ $transformation = New-Object Microsoft.Web.XmlTransform.XmlTransformation($_.FullName)
+ if ($transformation.Apply($targetDocument) -eq $false) {
+ throw "Transformation '$($_.FullName)' on '$($targetFilePath.FullName)' failed."
+ }
+
+ $targetDocument.Save($targetFilePath)
+ Write-Verbose "Transformation '$($_.FullName)' on '$($targetFilePath.FullName)' completed."
+}
\ No newline at end of file
diff --git a/sxc/10.0/xc1/cm/xdts/Web.config.xdt b/sxc/10.0/xc1/cm/xdts/Web.config.xdt
new file mode 100644
index 0000000..72d7ecb
--- /dev/null
+++ b/sxc/10.0/xc1/cm/xdts/Web.config.xdt
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sxc/10.0/xc1/docker-compose.build.yml b/sxc/10.0/xc1/docker-compose.build.yml
new file mode 100644
index 0000000..b7eb930
--- /dev/null
+++ b/sxc/10.0/xc1/docker-compose.build.yml
@@ -0,0 +1,96 @@
+version: "2.4"
+services:
+ mssql:
+ build:
+ context: ../xc-common/mssql/common
+ dockerfile: ../standalone/Dockerfile
+ args:
+ BASE_IMAGE: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-xp1-mssql:${XP_SITECORE_TAG}
+ SITECORE_CORE_DB: ${SITECORE_CORE_DB}
+ image: xc1-mssql
+ mssql-init:
+ build:
+ context: ../xc-common/mssql/common
+ dockerfile: ../init/Dockerfile
+ args:
+ BASE_IMAGE: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-xp1-mssql-init:${XP_SITECORE_TAG}
+ TOPOLOGY: xc1
+ image: xc1-mssql-init
+ solr:
+ build:
+ context: ../xc-common/solr
+ args:
+ BASE_IMAGE: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-xp1-solr:${XP_SITECORE_TAG}
+ SOLR_COMMERCE_CORE_NAMES: "CatalogItems,Customers,Orders,PriceCards,Promotions"
+ image: xc1-solr
+ solr-init:
+ build:
+ context: ../xc-common/solr-init
+ args:
+ BASE_IMAGE: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-xp1-solr-init:${XP_SITECORE_TAG}
+ XC_TOPOLOGY: xc1
+ SOLR_XDB_SCHEMA_FILE: "/Content/Website/App_Data/solrcommands/schema.json"
+ image: xc1-solr-init
+ rep:
+ build:
+ context: ./prcrep
+ dockerfile: ../../xc-common/prc-rep-xdba-xdbc/Dockerfile
+ args:
+ BASE_IMAGE: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-xp1-rep:${XP_SITECORE_TAG}
+ image: sitecore-xc1-rep
+ xdbcollection:
+ build:
+ context: ./xdbcollection
+ dockerfile: ../../xc-common/prc-rep-xdba-xdbc/Dockerfile
+ args:
+ BASE_IMAGE: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-xp1-xdbcollection:${XP_SITECORE_TAG}
+ image: sitecore-xc1-xdbcollection
+ prc:
+ build:
+ context: ./prcrep
+ dockerfile: ../../xc-common/prc-rep-xdba-xdbc/Dockerfile
+ args:
+ BASE_IMAGE: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-xp1-prc:${XP_SITECORE_TAG}
+ image: sitecore-xc1-prc
+ cm:
+ build:
+ context: ./cm
+ dockerfile: ../../xc-common/cd-cm/Dockerfile
+ args:
+ BASE_IMAGE: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-xp1-cm:${XP_SITECORE_TAG}
+ image: xc1-cm
+ cd:
+ build:
+ context: ./cd
+ dockerfile: ../../xc-common/cd-cm/Dockerfile
+ args:
+ BASE_IMAGE: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-xp1-cd:${XP_SITECORE_TAG}
+ image: xc1-cd
+ xdbsearch:
+ build:
+ context: ./xdbsearch
+ dockerfile: ../../xc-common/prc-rep-xdba-xdbc/Dockerfile
+ args:
+ BASE_IMAGE: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-xp1-xdbsearch:${XP_SITECORE_TAG}
+ image: sitecore-xc1-xdbsearch
+ xdbsearchworker:
+ build:
+ context: ../xc-common/xdbworkers
+ args:
+ BASE_IMAGE: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-xp1-xdbsearchworker:${XP_SITECORE_TAG}
+ CONTENT_PATH: xdbsearchworker/wdp/App_Data/jobs/continuous/IndexWorker
+ image: sitecore-xc1-xdbsearchworker
+ xdbautomation:
+ build:
+ context: ./xdbautomation
+ dockerfile: ../../xc-common/prc-rep-xdba-xdbc/Dockerfile
+ args:
+ BASE_IMAGE: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-xp1-xdbautomation:${XP_SITECORE_TAG}
+ image: sitecore-xc1-xdbautomation
+ xdbautomationworker:
+ build:
+ context: ../xc-common/xdbworkers
+ args:
+ BASE_IMAGE: ${XP_SITECORE_DOCKER_REGISTRY}sitecore-xp1-xdbautomationworker:${XP_SITECORE_TAG}
+ CONTENT_PATH: xdbautomationworker/wdp/App_Data/jobs/continuous/AutomationEngine
+ image: sitecore-xc1-xdbautomationworker
diff --git a/sxc/10.0/xc1/prcrep/keep.txt b/sxc/10.0/xc1/prcrep/keep.txt
new file mode 100644
index 0000000..e69de29
diff --git a/sxc/10.0/xc1/xdbautomation/keep.txt b/sxc/10.0/xc1/xdbautomation/keep.txt
new file mode 100644
index 0000000..e69de29
diff --git a/sxc/10.0/xc1/xdbcollection/keep.txt b/sxc/10.0/xc1/xdbcollection/keep.txt
new file mode 100644
index 0000000..e69de29
diff --git a/sxc/10.0/xc1/xdbsearch/keep.txt b/sxc/10.0/xc1/xdbsearch/keep.txt
new file mode 100644
index 0000000..e69de29