initial commit
This commit is contained in:
commit
09e75fd638
404
README.md
Normal file
404
README.md
Normal file
@ -0,0 +1,404 @@
|
||||
# Installation of EDCenter Server
|
||||
|
||||
EDCenter provides automatically updated Docker images within the Docker Hub organization. It is possible to always use
|
||||
the latest stable tag or use another service that takes care of updating Docker images.
|
||||
|
||||
> EDCenter Image on DockerHub: [ateso/edcenter-single](https://hub.docker.com/r/ateso/edcenter-single)
|
||||
|
||||
This reference setup guides users through the setup based on docker-compose, but the installation of docker-compose is
|
||||
outside the scope of this documentation. To install docker-compose yourself, follow the [official installation
|
||||
instructions](https://docs.docker.com/compose/install/).
|
||||
|
||||
**System requirements:**
|
||||
|
||||
1. You need a server infrastructure on which you will deploy the EDCenter image. Below we describe how to set up
|
||||
EDCenter on Docker or Kubernetes.
|
||||
2. The EDCenter image contains only the EDCenter Runtime without database. For this reason, the MySQL database server
|
||||
must be operated outside the container and access must be configured.
|
||||
3. EDCenter sends notifications by e-mail. Access to your outgoing mail server must be configured accordingly.
|
||||
4. If SSO login via Microsoft Entra is desired, this must be set up and configured in advance.
|
||||
|
||||
## Configuration via Environment
|
||||
|
||||
This is a cheat sheet for the EDCenter image configuration using environment variables. It contains the settings that
|
||||
can be configured as well as their default values.
|
||||
|
||||
| Environment variable | Default value | Description |
|
||||
|--------------------------|----------------------------|-------------------------------------------------------------------|
|
||||
| 1. **MySQL Server** | | |
|
||||
| EDC_MYSQL_HOST | 'db' | URL to the SQL host server |
|
||||
| EDC_MYSQL_PORT | 3306 | SQL host port |
|
||||
| EDC_MYSQL_USER | 'edc_production' | Mysql username with access to below defined database |
|
||||
| EDC_MYSQL_PW | 'root' | Mysql user password |
|
||||
| EDC_MYSQL_DB | 'sql_root' | Name of existing database |
|
||||
| 2. **SMTP Email Server** | | |
|
||||
| EDC_SMTP_HOST | - | URL to SMTP host server |
|
||||
| EDC_SMTP_PORT | - | Port (mostly: 25, 465 or 587) |
|
||||
| EDC_SMTP_USER | - | Username |
|
||||
| EDC_SMTP_PASS | - | Password |
|
||||
| EDC_SMTP_ENCRYPTION | - | Encryption type (Possible values: empty or 'tls') |
|
||||
| EDC_SMTP_FROM_NAME | 'Engine Diagnostic Center' | Sender name |
|
||||
| EDC_SMTP_FROM_EMAIL | - | Sender email |
|
||||
| 3. **MS Entra SSO** | | |
|
||||
| EDC_ENTRA_CLIENTID | - | |
|
||||
| EDC_ENTRA_AUTHORITY | - | |
|
||||
| EDC_ENTRA_REDIRECTURI | - | |
|
||||
| EDC_ENTRA_BASECOMID | - | |
|
||||
| EDC_ENTRA_FROMBASEDLOGIN | true | Boolean: Control whether frombased login should be offered or not |
|
||||
|
||||
### Configure MySQL Server
|
||||
|
||||
* Set up a MySQL flexible server and use the version 5.7.
|
||||

|
||||

|
||||

|
||||
* Manually create a new database with the name “edc_production”.
|
||||

|
||||
* Create a user with full authorization specifically for the database. Grant **all** privileges for the database.
|
||||
* The user must be configured using "mysql_native_password" identification mode.
|
||||
|
||||
### Configure SMTP Server
|
||||
|
||||
### Configure MS Entra SSO
|
||||
|
||||
* Login to your corporate Azure portal
|
||||
* Navigate to MS Entra -> App registrations
|
||||
* Click on new registration
|
||||
* 
|
||||
* Enter a name “EDCenter”, select the supported account types and define the redirection URI (public domain) under
|
||||
which you want to make the EDCenter accessible.
|
||||

|
||||
* You will then receive the details from MS for the env configuration of MS Entra in EDCenter:
|
||||
* EDC_ENTRA_CLIENTID: b1c9f591-4067-4339-b0ec-69797f1357f1
|
||||
* EDC_ENTRA_AUTHORITY: https://login.microsoftonline.com/cb7fcac2-c96c-45ef-b2b3-281a15c71205
|
||||
* EDC_ENTRA_REDIRECTURI: http://localhost
|
||||
* EDC_ENTRA_BASECOMID: 20 (Your company ID in edcenter)
|
||||
* EDC_ENTRA_FROMBASEDLOGIN: true|false (Control whether frombased login should be offered or not)
|
||||

|
||||
|
||||
## Install with Docker
|
||||
|
||||
```yaml
|
||||
name: edcenter
|
||||
services:
|
||||
prod:
|
||||
container_name: edcenter
|
||||
image: ateso/edcenter-single:latest
|
||||
ports:
|
||||
- "80:80"
|
||||
environment:
|
||||
# SQL
|
||||
EDC_MYSQL_HOST: db
|
||||
EDC_MYSQL_USER: root
|
||||
EDC_MYSQL_PW:
|
||||
EDC_MYSQL_DB: edc_production
|
||||
# SMTP
|
||||
EDC_SMTP_HOST: mysql_prod
|
||||
EDC_SMTP_PORT:
|
||||
EDC_SMTP_USER:
|
||||
EDC_SMTP_PASS:
|
||||
EDC_SMTP_ENCRYPTION:
|
||||
EDC_SMTP_FROM_NAME:
|
||||
EDC_SMTP_FROM_EMAIL:
|
||||
# MS Entra
|
||||
EDC_ENTRA_CLIENTID:
|
||||
EDC_ENTRA_AUTHORITY:
|
||||
EDC_ENTRA_REDIRECTURI:
|
||||
EDC_ENTRA_BASECOMID:
|
||||
```
|
||||
|
||||
## Install with Kubernetes
|
||||
|
||||
EDCenter can be set up completely in Azure together with the KeyVault using this script. If this is to be translated
|
||||
into a different architectural language, this is up to you.
|
||||
|
||||
```bash
|
||||
# AKS Settings
|
||||
export AKS_NAMESPACE='edcenter'
|
||||
export AKS_SERVICE_PROVIDER='edcenter-keyvault-provider'
|
||||
export AKS_SERVICE_ACCOUNT='edcenter-service-identity-sa'
|
||||
export AKS_DEPLOYMENT_NAME='edcenter-deployment'
|
||||
export AKS_SERVICE='edcenter-service'
|
||||
|
||||
# Keyvaul AKS Settings
|
||||
export SUBSCRIPTION_ID='c48b68ad-eb2b-4400-972a-f3788e2c16d2'
|
||||
export LOCATION='centralus'
|
||||
export RESOURCE_GROUP='aks_group'
|
||||
export UAMI='edcenter-keyvault-aks-cluster'
|
||||
export KEYVAULT_NAME='edcenter-keyvault'
|
||||
export CLUSTER_NAME='aks'
|
||||
|
||||
# Pre (create keyvault)
|
||||
echo 'PRE - create keyvault'
|
||||
# Create keyvault with RBAC enabled
|
||||
az keyvault create --name $KEYVAULT_NAME --resource-group $RESOURCE_GROUP --location centralus --enable-rbac-authorizatio
|
||||
# Create a secret into an existing Key Vault
|
||||
az keyvault secret set --vault-name $KEYVAULT_NAME --name "EDCMYSQLHOST" --value "edcenter-server.mysql.database.azure.com"
|
||||
az keyvault secret set --vault-name $KEYVAULT_NAME --name "EDCMYSQLUSER" --value ""
|
||||
az keyvault secret set --vault-name $KEYVAULT_NAME --name "EDCMYSQLPASS" --value ""
|
||||
az keyvault secret set --vault-name $KEYVAULT_NAME --name "EDCSMTPHOST" --value "lx41.hoststar.hosting"
|
||||
az keyvault secret set --vault-name $KEYVAULT_NAME --name "EDCSMTPUSER" --value "edc.noreply@fuchstechnology.com"
|
||||
az keyvault secret set --vault-name $KEYVAULT_NAME --name "EDCSMTPPASS" --value ""
|
||||
az keyvault secret set --vault-name $KEYVAULT_NAME --name "EDCSMTPPORT" --value "587"
|
||||
az keyvault secret set --vault-name $KEYVAULT_NAME --name "EDCSMTPFROMEMAIL" --value "edc.noreply@fuchstechnology.com"
|
||||
az keyvault secret set --vault-name $KEYVAULT_NAME --name "EDCSMTPFROMNAME" --value "Engine Diagnostic Center"
|
||||
|
||||
echo '1 - Account Settings'
|
||||
az account set --subscription $SUBSCRIPTION_ID
|
||||
az aks get-credentials --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --overwrite-existing
|
||||
echo '2 - Create managed identity'
|
||||
az identity create --name $UAMI --resource-group $RESOURCE_GROUP
|
||||
echo '3 - Get IDs'
|
||||
export USER_ASSIGNED_CLIENT_ID="$(az identity show --resource-group $RESOURCE_GROUP --name $UAMI --query 'clientId' -o tsv)"
|
||||
export IDENTITY_TENANT=$(az aks show --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --query identity.tenantId -o tsv)
|
||||
export KEYVAULT_SCOPE=$(az keyvault show --name $KEYVAULT_NAME --query id -o tsv)
|
||||
|
||||
# Example command for key vault with RBAC enabled using `key` type
|
||||
echo '4 - RBAC role assigment'
|
||||
az role assignment create --role "Key Vault Administrator" --assignee $USER_ASSIGNED_CLIENT_ID --scope $KEYVAULT_SCOPE
|
||||
|
||||
# Get the AKS cluster OIDC Issuer URL using the az aks show command.
|
||||
echo '5 - Define OIDC user'
|
||||
export AKS_OIDC_ISSUER="$(az aks show --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --query "oidcIssuerProfile.issuerUrl" -o tsv)"
|
||||
echo $AKS_OIDC_ISSUER
|
||||
|
||||
echo '6 - namespace'
|
||||
cat << EOF | kubectl apply -f -
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: ${AKS_NAMESPACE}
|
||||
labels:
|
||||
name: ${AKS_NAMESPACE}
|
||||
EOF
|
||||
|
||||
echo '7 - Add service account'
|
||||
#Establish a federated identity credential between the Microsoft Entra application, service account issuer, and subject
|
||||
cat << EOF | kubectl apply -f -
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
annotations:
|
||||
azure.workload.identity/client-id: ${USER_ASSIGNED_CLIENT_ID}
|
||||
name: ${AKS_SERVICE_ACCOUNT}
|
||||
namespace: ${AKS_NAMESPACE}
|
||||
EOF
|
||||
|
||||
echo '8 - Create federated identity'
|
||||
#Create the federated identity credential between the managed identity, service account issuer, and subject
|
||||
export FEDERATED_IDENTITY_NAME="aksfederatedidentity" # can be changed as needed
|
||||
az identity federated-credential create --name $FEDERATED_IDENTITY_NAME --identity-name $UAMI --resource-group $RESOURCE_GROUP --issuer ${AKS_OIDC_ISSUER} --subject system:serviceaccount:${AKS_NAMESPACE}:${AKS_SERVICE_ACCOUNT}
|
||||
|
||||
echo '9 - Add secret provider class'
|
||||
#Deploy a SecretProviderClass using the kubectl apply command and the following YAML script.
|
||||
cat << EOF | kubectl apply -f -
|
||||
# This is a SecretProviderClass example using workload identity to access your key vault
|
||||
apiVersion: secrets-store.csi.x-k8s.io/v1
|
||||
kind: SecretProviderClass
|
||||
metadata:
|
||||
name: ${AKS_SERVICE_PROVIDER}
|
||||
namespace: ${AKS_NAMESPACE}
|
||||
spec:
|
||||
provider: azure
|
||||
parameters:
|
||||
usePodIdentity: "false"
|
||||
clientID: "${USER_ASSIGNED_CLIENT_ID}" # Setting this to use workload identity
|
||||
keyvaultName: ${KEYVAULT_NAME} # Set to the name of your key vault
|
||||
cloudName: "" # [OPTIONAL for Azure] if not provided, the Azure environment defaults to AzurePublicCloud
|
||||
objects: |
|
||||
array:
|
||||
- |
|
||||
objectName: EDCMYSQLHOST
|
||||
objectType: secret
|
||||
- |
|
||||
objectName: EDCMYSQLUSER
|
||||
objectType: secret
|
||||
- |
|
||||
objectName: EDCMYSQLPASS
|
||||
objectType: secret
|
||||
- |
|
||||
objectName: EDCSMTPHOST
|
||||
objectType: secret
|
||||
- |
|
||||
objectName: EDCSMTPPORT
|
||||
objectType: secret
|
||||
- |
|
||||
objectName: EDCSMTPUSER
|
||||
objectType: secret
|
||||
- |
|
||||
objectName: EDCSMTPPASS
|
||||
objectType: secret
|
||||
- |
|
||||
objectName: EDCSMTPFROMEMAIL
|
||||
objectType: secret
|
||||
- |
|
||||
objectName: EDCSMTPFROMNAME
|
||||
objectType: secret
|
||||
|
||||
tenantId: "${IDENTITY_TENANT}" # The tenant ID of the key vault
|
||||
secretObjects:
|
||||
- secretName: edcenter-secret
|
||||
type: Opaque
|
||||
data:
|
||||
- key: EDCMYSQLHOST
|
||||
objectName: EDCMYSQLHOST
|
||||
- key: EDCMYSQLUSER
|
||||
objectName: EDCMYSQLUSER
|
||||
- key: EDCMYSQLPASS
|
||||
objectName: EDCMYSQLPASS
|
||||
- key: EDCSMTPHOST
|
||||
objectName: EDCSMTPHOST
|
||||
- key: EDCSMTPPORT
|
||||
objectName: EDCSMTPPORT
|
||||
- key: EDCSMTPUSER
|
||||
objectName: EDCSMTPUSER
|
||||
- key: EDCSMTPPASS
|
||||
objectName: EDCSMTPPASS
|
||||
- key: EDCSMTPFROMEMAIL
|
||||
objectName: EDCSMTPFROMEMAIL
|
||||
- key: EDCSMTPFROMNAME
|
||||
objectName: EDCSMTPFROMNAME
|
||||
EOF
|
||||
|
||||
echo 'POST - do deployment'
|
||||
cat << EOF | kubectl apply -f -
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: ${AKS_DEPLOYMENT_NAME}
|
||||
namespace: ${AKS_NAMESPACE}
|
||||
labels:
|
||||
app: ${AKS_NAMESPACE}
|
||||
spec:
|
||||
replicas: 3
|
||||
selector:
|
||||
matchLabels:
|
||||
app: ${AKS_NAMESPACE}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: ${AKS_NAMESPACE}
|
||||
spec:
|
||||
serviceAccountName: "${AKS_SERVICE_ACCOUNT}"
|
||||
containers:
|
||||
- name: ${AKS_NAMESPACE}
|
||||
image: ateso.azurecr.io/edcenter-single:latest
|
||||
ports:
|
||||
- containerPort: 80
|
||||
volumeMounts:
|
||||
- name: secrets-store01-inline
|
||||
mountPath: "/mnt/secrets-store"
|
||||
readOnly: true
|
||||
env:
|
||||
- name: EDC_MYSQL_HOST
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: edcenter-secret
|
||||
key: EDCMYSQLHOST
|
||||
- name: EDC_MYSQL_DB
|
||||
value: "edc_production"
|
||||
- name: EDC_MYSQL_USER
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: edcenter-secret
|
||||
key: EDCMYSQLUSER
|
||||
- name: EDC_MYSQL_PW
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: edcenter-secret
|
||||
key: EDCMYSQLPASS
|
||||
- name: EDC_SMTP_HOST
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: edcenter-secret
|
||||
key: EDCSMTPHOST
|
||||
- name: EDC_SMTP_PORT
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: edcenter-secret
|
||||
key: EDCSMTPPORT
|
||||
- name: EDC_SMTP_USER
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: edcenter-secret
|
||||
key: EDCSMTPUSER
|
||||
- name: EDC_SMTP_PASS
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: edcenter-secret
|
||||
key: EDCSMTPPASS
|
||||
- name: EDC_SMTP_FROM_EMAIL
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: edcenter-secret
|
||||
key: EDCSMTPFROMEMAIL
|
||||
- name: EDC_SMTP_FROM_NAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: edcenter-secret
|
||||
key: EDCSMTPFROMNAME
|
||||
- name: EDC_ENTRA_CLIENTID
|
||||
value: "3b6a5214-c98e-46b6-bf37-10261473406d"
|
||||
- name: EDC_ENTRA_AUTHORITY
|
||||
value: "https://login.microsoftonline.com/cb7fcac2-c96c-45ef-b2b3-281a15c71205"
|
||||
- name: EDC_ENTRA_REDIRECTURI
|
||||
value: "http://52.230.147.82"
|
||||
- name: EDC_ENTRA_BASECOMID
|
||||
value: "20"
|
||||
volumes:
|
||||
- name: secrets-store01-inline
|
||||
csi:
|
||||
driver: secrets-store.csi.k8s.io
|
||||
readOnly: true
|
||||
volumeAttributes:
|
||||
secretProviderClass: ${AKS_SERVICE_PROVIDER}
|
||||
EOF
|
||||
|
||||
echo 'POST - do service'
|
||||
cat << EOF | kubectl apply -f -
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: ${AKS_SERVICE}
|
||||
namespace: ${AKS_NAMESPACE}
|
||||
spec:
|
||||
selector:
|
||||
app: ${AKS_NAMESPACE}
|
||||
type: LoadBalancer
|
||||
ports:
|
||||
- protocol: TCP
|
||||
port: 80
|
||||
targetPort: 80
|
||||
EOF
|
||||
```
|
||||
|
||||
## EDCenter configuration after successful start
|
||||
|
||||
The EDCenter master data must then be entered into the database in order to start the system. For this purpose, we have
|
||||
provided master data records that can be executed using a script within the container.
|
||||
|
||||
* Access the container you have deployed in terminal mode.
|
||||
* Execute the following command in the terminal:
|
||||
|
||||
````bash
|
||||
sh /home/storage/scripts/download.sh
|
||||
````
|
||||
|
||||
The script requests the file name and a token. You will receive this information from us.
|
||||
* Filename: sent by mail
|
||||
* Token: sent by mail
|
||||
|
||||
* After successfully downloading and unpacking the master data file, you must temporarily activate the following global
|
||||
variable on your MySQL server to ensure the master data import. To do this, log in to your MySQL server and execute
|
||||
the following SQL command with admin/root rights. (If you are using version 5.7 of MySQL, then you do not need this
|
||||
step)
|
||||
```sql
|
||||
SET GLOBAL log_bin_trust_function_creators = 1;
|
||||
```
|
||||
|
||||
* You can then import the master data:
|
||||
````bash
|
||||
sh masterdata/0_INIT.sh
|
||||
````
|
||||
The script asks for SQL host, database, username and password to perform the import on your database. If already
|
||||
configured, the script pulls the data from the environment variables
|
||||
90
aks/deployment.yaml
Normal file
90
aks/deployment.yaml
Normal file
@ -0,0 +1,90 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: ${AKS_DEPLOYMENT_NAME}
|
||||
namespace: ${AKS_NAMESPACE}
|
||||
labels:
|
||||
app: ${AKS_NAMESPACE}
|
||||
spec:
|
||||
replicas: 3
|
||||
selector:
|
||||
matchLabels:
|
||||
app: ${AKS_NAMESPACE}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: ${AKS_NAMESPACE}
|
||||
spec:
|
||||
serviceAccountName: "${AKS_SERVICE_ACCOUNT}"
|
||||
containers:
|
||||
- name: ${AKS_NAMESPACE}
|
||||
image: ateso.azurecr.io/edcenter-single:latest
|
||||
ports:
|
||||
- containerPort: 80
|
||||
volumeMounts:
|
||||
- name: secrets-store01-inline
|
||||
mountPath: "/mnt/secrets-store"
|
||||
readOnly: true
|
||||
env:
|
||||
- name: EDC_MYSQL_HOST
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: edcenter-secret
|
||||
key: EDCMYSQLHOST
|
||||
- name: EDC_MYSQL_DB
|
||||
value: "edc_production"
|
||||
- name: EDC_MYSQL_USER
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: edcenter-secret
|
||||
key: EDCMYSQLUSER
|
||||
- name: EDC_MYSQL_PW
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: edcenter-secret
|
||||
key: EDCMYSQLPASS
|
||||
- name: EDC_SMTP_HOST
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: edcenter-secret
|
||||
key: EDCSMTPHOST
|
||||
- name: EDC_SMTP_PORT
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: edcenter-secret
|
||||
key: EDCSMTPPORT
|
||||
- name: EDC_SMTP_USER
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: edcenter-secret
|
||||
key: EDCSMTPUSER
|
||||
- name: EDC_SMTP_PASS
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: edcenter-secret
|
||||
key: EDCSMTPPASS
|
||||
- name: EDC_SMTP_FROM_EMAIL
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: edcenter-secret
|
||||
key: EDCSMTPFROMEMAIL
|
||||
- name: EDC_SMTP_FROM_NAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: edcenter-secret
|
||||
key: EDCSMTPFROMNAME
|
||||
- name: EDC_ENTRA_CLIENTID
|
||||
value: "3b6a5214-c98e-46b6-bf37-10261473406d"
|
||||
- name: EDC_ENTRA_AUTHORITY
|
||||
value: "https://login.microsoftonline.com/cb7fcac2-c96c-45ef-b2b3-281a15c71205"
|
||||
- name: EDC_ENTRA_REDIRECTURI
|
||||
value: "http://52.230.147.82"
|
||||
- name: EDC_ENTRA_BASECOMID
|
||||
value: "20"
|
||||
volumes:
|
||||
- name: secrets-store01-inline
|
||||
csi:
|
||||
driver: secrets-store.csi.k8s.io
|
||||
readOnly: true
|
||||
volumeAttributes:
|
||||
secretProviderClass: ${AKS_SERVICE_PROVIDER}
|
||||
6
aks/namespace.yaml
Normal file
6
aks/namespace.yaml
Normal file
@ -0,0 +1,6 @@
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: ${AKS_NAMESPACE}
|
||||
labels:
|
||||
name: ${AKS_NAMESPACE}
|
||||
65
aks/secretProvider.yaml
Normal file
65
aks/secretProvider.yaml
Normal file
@ -0,0 +1,65 @@
|
||||
apiVersion: secrets-store.csi.x-k8s.io/v1
|
||||
kind: SecretProviderClass
|
||||
metadata:
|
||||
name: ${AKS_SERVICE_PROVIDER}
|
||||
namespace: ${AKS_NAMESPACE}
|
||||
spec:
|
||||
provider: azure
|
||||
parameters:
|
||||
usePodIdentity: "false"
|
||||
clientID: "${USER_ASSIGNED_CLIENT_ID}" # Setting this to use workload identity
|
||||
keyvaultName: ${KEYVAULT_NAME} # Set to the name of your key vault
|
||||
cloudName: "" # [OPTIONAL for Azure] if not provided, the Azure environment defaults to AzurePublicCloud
|
||||
objects: |
|
||||
array:
|
||||
- |
|
||||
objectName: EDCMYSQLHOST
|
||||
objectType: secret
|
||||
- |
|
||||
objectName: EDCMYSQLUSER
|
||||
objectType: secret
|
||||
- |
|
||||
objectName: EDCMYSQLPASS
|
||||
objectType: secret
|
||||
- |
|
||||
objectName: EDCSMTPHOST
|
||||
objectType: secret
|
||||
- |
|
||||
objectName: EDCSMTPPORT
|
||||
objectType: secret
|
||||
- |
|
||||
objectName: EDCSMTPUSER
|
||||
objectType: secret
|
||||
- |
|
||||
objectName: EDCSMTPPASS
|
||||
objectType: secret
|
||||
- |
|
||||
objectName: EDCSMTPFROMEMAIL
|
||||
objectType: secret
|
||||
- |
|
||||
objectName: EDCSMTPFROMNAME
|
||||
objectType: secret
|
||||
|
||||
tenantId: "${IDENTITY_TENANT}" # The tenant ID of the key vault
|
||||
secretObjects:
|
||||
- secretName: edcenter-secret
|
||||
type: Opaque
|
||||
data:
|
||||
- key: EDCMYSQLHOST
|
||||
objectName: EDCMYSQLHOST
|
||||
- key: EDCMYSQLUSER
|
||||
objectName: EDCMYSQLUSER
|
||||
- key: EDCMYSQLPASS
|
||||
objectName: EDCMYSQLPASS
|
||||
- key: EDCSMTPHOST
|
||||
objectName: EDCSMTPHOST
|
||||
- key: EDCSMTPPORT
|
||||
objectName: EDCSMTPPORT
|
||||
- key: EDCSMTPUSER
|
||||
objectName: EDCSMTPUSER
|
||||
- key: EDCSMTPPASS
|
||||
objectName: EDCSMTPPASS
|
||||
- key: EDCSMTPFROMEMAIL
|
||||
objectName: EDCSMTPFROMEMAIL
|
||||
- key: EDCSMTPFROMNAME
|
||||
objectName: EDCSMTPFROMNAME
|
||||
13
aks/service.yaml
Normal file
13
aks/service.yaml
Normal file
@ -0,0 +1,13 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: ${AKS_SERVICE}
|
||||
namespace: ${AKS_NAMESPACE}
|
||||
spec:
|
||||
selector:
|
||||
app: ${AKS_NAMESPACE}
|
||||
type: LoadBalancer
|
||||
ports:
|
||||
- protocol: TCP
|
||||
port: 80
|
||||
targetPort: 80
|
||||
7
aks/serviceAccount.yaml
Normal file
7
aks/serviceAccount.yaml
Normal file
@ -0,0 +1,7 @@
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
annotations:
|
||||
azure.workload.identity/client-id: ${USER_ASSIGNED_CLIENT_ID}
|
||||
name: ${AKS_SERVICE_ACCOUNT}
|
||||
namespace: ${AKS_NAMESPACE}
|
||||
Loading…
Reference in New Issue
Block a user