github.com/verrazzano/verrazzano@v1.7.1/examples/multicluster/todo-list/todo-list-components.yaml (about)

     1  # Copyright (c) 2020, 2022, Oracle and/or its affiliates.
     2  # Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
     3  
     4  apiVersion: core.oam.dev/v1alpha2
     5  kind: Component
     6  metadata:
     7    name: todo-domain
     8    namespace: mc-todo-list
     9  spec:
    10    workload:
    11      apiVersion: oam.verrazzano.io/v1alpha1
    12      kind: VerrazzanoWebLogicWorkload
    13      spec:
    14        template:
    15          apiVersion: weblogic.oracle/v9
    16          metadata:
    17            name: todo-domain
    18            namespace: mc-todo-list
    19          spec:
    20            adminServer:
    21              adminChannelPortForwardingEnabled: true
    22            domainUID: tododomain
    23            domainHome: /u01/domains/tododomain
    24            image: container-registry.oracle.com/middleware/weblogic:12.2.1.4
    25            imagePullSecrets:
    26              - name: tododomain-repo-credentials
    27            domainHomeSourceType: "FromModel"
    28            includeServerOutInPodLog: true
    29            replicas: 1
    30            webLogicCredentialsSecret:
    31              name: tododomain-weblogic-credentials
    32            configuration:
    33              introspectorJobActiveDeadlineSeconds: 900
    34              model:
    35                auxiliaryImages:
    36                  - image: container-registry.oracle.com/verrazzano/example-todo:20211129200415-ae4e89e
    37                configMap: tododomain-jdbc-config
    38                domainType: WLS
    39                runtimeEncryptionSecret: tododomain-runtime-encrypt-secret
    40              secrets:
    41                - tododomain-jdbc-tododb
    42            serverPod:
    43              labels:
    44                app: todo-domain
    45                version: v1
    46              env:
    47                - name: JAVA_OPTIONS
    48                  value: "-Dweblogic.StdoutDebugEnabled=false"
    49                - name: USER_MEM_ARGS
    50                  value: "-Djava.security.egd=file:/dev/./urandom -Xms64m -Xmx256m "
    51                - name: WL_HOME
    52                  value: /u01/oracle/wlserver
    53                - name: MW_HOME
    54                  value: /u01/oracle
    55  ---
    56  apiVersion: core.oam.dev/v1alpha2
    57  kind: Component
    58  metadata:
    59    name: todo-jdbc-config
    60    namespace: mc-todo-list
    61  spec:
    62    workload:
    63      apiVersion: v1
    64      kind: ConfigMap
    65      metadata:
    66        name: tododomain-jdbc-config
    67        namespace: mc-todo-list
    68      data:
    69        wdt_jdbc.yaml: |
    70          resources:
    71            JDBCSystemResource:
    72              'ToDo-Datasource':
    73                Target: 'AdminServer'
    74                JdbcResource:
    75                  DatasourceType: GENERIC
    76                  JDBCDataSourceParams:
    77                    GlobalTransactionsProtocol: OnePhaseCommit
    78                    JNDIName: jdbc/ToDoDB
    79                  JDBCConnectionPoolParams:
    80                    ConnectionCreationRetryFrequencySeconds: 5
    81                    ConnectionReserveTimeoutSeconds: 10
    82                    InitialCapacity: 0
    83                    InactiveConnectionTimeoutSeconds: 60
    84                    MaxCapacity: 5
    85                    MinCapacity: 0
    86                    TestConnectionsOnReserve: true
    87                    TestFrequencySeconds: 10
    88                  JDBCDriverParams:
    89                    # for MySQL, the last element in the URL is the database name, and must match the name inside the DB server
    90                    URL: "jdbc:mysql://mysql.mc-todo-list.svc.cluster.local:3306/tododb"
    91                    PasswordEncrypted: '@@SECRET:tododomain-jdbc-tododb:password@@'
    92                    DriverName: com.mysql.cj.jdbc.Driver
    93                    Properties:
    94                      user:
    95                        Value: '@@SECRET:tododomain-jdbc-tododb:username@@'
    96  ---
    97  apiVersion: core.oam.dev/v1alpha2
    98  kind: Component
    99  metadata:
   100    name: mysql-initdb-config
   101    namespace: mc-todo-list
   102  spec:
   103    workload:
   104      apiVersion: v1
   105      kind: ConfigMap
   106      metadata:
   107        name: mysql-initdb-config
   108        namespace: mc-todo-list
   109      data:
   110        initdb.sql: |
   111          create table `ToDos` (
   112              `taskId` int not null auto_increment,
   113              `task` varchar(200) not null,
   114              `completed` boolean,
   115              constraint todo_pk primary key (`taskId`)
   116          );
   117  ---
   118  apiVersion: core.oam.dev/v1alpha2
   119  kind: Component
   120  metadata:
   121    name: todo-mysql-service
   122    namespace: mc-todo-list
   123  spec:
   124    workload:
   125      apiVersion: v1
   126      kind: Service
   127      metadata:
   128        name: mysql
   129        namespace: mc-todo-list
   130      spec:
   131        ports:
   132          - port: 3306
   133        selector:
   134          app: todo-mysql
   135        clusterIP: None
   136  ---
   137  apiVersion: core.oam.dev/v1alpha2
   138  kind: Component
   139  metadata:
   140    name: todo-mysql-deployment
   141    namespace: mc-todo-list
   142  spec:
   143    workload:
   144      apiVersion: apps/v1
   145      kind: Deployment
   146      metadata:
   147        name: mysql
   148        namespace: todo-list
   149      spec:
   150        replicas: 1
   151        selector:
   152          matchLabels:
   153            app: todo-mysql
   154        template:
   155          metadata:
   156            labels:
   157              app: todo-mysql
   158              version: v1
   159          spec:
   160            containers:
   161              - env:
   162                  - name: MYSQL_ROOT_PASSWORD
   163                    valueFrom:
   164                      secretKeyRef:
   165                        name: tododomain-jdbc-tododb
   166                        key: password
   167                  - name: MYSQL_USER
   168                    valueFrom:
   169                      secretKeyRef:
   170                        name: tododomain-jdbc-tododb
   171                        key: username
   172                  - name: MYSQL_PASSWORD
   173                    valueFrom:
   174                      secretKeyRef:
   175                        name: tododomain-jdbc-tododb
   176                        key: password
   177                  - name: MYSQL_DATABASE
   178                    value: tododb
   179                image: ghcr.io/verrazzano/mysql:8.0.28
   180                imagePullPolicy: IfNotPresent
   181                name: mysql
   182                ports:
   183                  - containerPort: 3306
   184                    name: mysql
   185                    protocol: TCP
   186                volumeMounts:
   187                  - mountPath: /docker-entrypoint-initdb.d
   188                    name: mysql-initdb
   189            imagePullSecrets:
   190              - name: ocr
   191            volumes:
   192              - configMap:
   193                  defaultMode: 420
   194                  name: mysql-initdb-config
   195                name: mysql-initdb