apiVersion: v1 kind: Template metadata: name: "peopleapi-template" annotations: description: "Demo People API" iconClass: "icon-dotnet" tags: "dotnet,core" labels: application: "peopleapi" createdBy: "peopleapi-template" objects: - apiVersion: v1 kind: "ImageStream" metadata: name: "peopleapi" - apiVersion: v1 kind: "ImageStream" metadata: name: "peopleapidb" - apiVersion: v1 kind: "BuildConfig" metadata: name: "peopleapi-bc" annotations: description: "Defines how to build the People API webapi app." labels: app: peopleapi namespace: peopleapi spec: completionDeadlineSeconds: 3600 env: - name: "GIT_SSL_NO_VERIFY" value: "true" source: type: "Git" git: ref: ${CONSUMER_GIT_BRANCH} uri: ${CONSUMER_GIT_URL} contextDir: "/" strategy: dockerStrategy: dockerfilePath: Dockerfile output: to: kind: "ImageStreamTag" name: "peopleapi:latest" - apiVersion: v1 kind: "BuildConfig" metadata: name: "peopleapidb-bc" annotations: description: "Defines how to build the People API database." labels: app: peopleapidb namespace: peopleapi spec: completionDeadlineSeconds: 3600 env: - name: "GIT_SSL_NO_VERIFY" value: "true" source: type: "Git" git: ref: ${CONSUMER_GIT_BRANCH} uri: ${CONSUMER_GIT_URL} contextDir: "database" strategy: dockerStrategy: dockerfilePath: Dockerfile output: to: kind: "ImageStreamTag" name: "peopleapidb:latest" - apiVersion: v1 kind: "BuildConfig" metadata: name: "peopleapi-bc-pipeline" spec: completionDeadlineSeconds: 3600 source: git: ref: ${CONSUMER_GIT_BRANCH} uri: ${CONSUMER_GIT_URL} sourceSecret: name: "peopleapi-source-control" strategy: jenkinsPipelineStrategy: jenkinsfilePath: Jenkinsfile - apiVersion: v1 kind: "Service" metadata: name: "peopleapi-svc" annotations: description: "Exposes and load balances the application pods" spec: ports: - name: "peopleapi" port: 8080 targetPort: 8080 selector: name: "peopleapi" - apiVersion: v1 kind: "Service" metadata: name: "peopleapidb-svc" annotations: description: "Exposes the application database" spec: ports: - name: "peopleapidb" port: 1433 targetPort: 1433 selector: name: "peopleapidb" - apiVersion: v1 kind: Route metadata: annotations: openshift.io/host.generated: 'true' labels: app: peopleapi name: peopleapi namespace: peopleapi spec: to: kind: Service name: peopleapi-svc weight: 100 wildcardPolicy: None - apiVersion: v1 kind: "DeploymentConfig" metadata: name: "peopleapi-dc" annotations: description: "Handles deployment of the demo People API application" generation: 2 labels: app: peopleapi-template application: peopleapi createdBy: peopleapi-template namespace: peopleapi spec: replicas: 1 selector: name: peopleapi strategy: activeDeadlineSeconds: 21600 recreateParams: timeoutSeconds: 600 resources: {} type: Recreate template: metadata: labels: name: "peopleapi" spec: containers: - name: peopleapi env: - name: ASPNETCORE_ENVIRONMENT value: Development - name: ASPNETCORE_URLS value: 'http://*:8080' - name: peopleapicontext value: ${PEOPLEAPI_CONN_STRING} image: 'peopleapi/peopleapi:latest' imagePullPolicy: IfNotPresent ports: - containerPort: 8080 protocol: TCP resources: limits: cpu: 750m memory: 1Gi requests: cpu: 250m memory: 350Mi terminationMessagePath: /dev/termination-log terminationMessagePolicy: File dnsPolicy: ClusterFirst restartPolicy: Always schedulerName: default-scheduler securityContext: {} terminationGracePeriodSeconds: 30 test: false triggers: - type: "ConfigChange" - type: "ImageChange" imageChangeParams: automatic: true containerNames: - "peopleapi" from: kind: "ImageStreamTag" name: "peopleapi:latest" - apiVersion: v1 kind: "DeploymentConfig" metadata: name: "peopleapidb-dc" annotations: description: "Handles deployment of the demo People API MSSQL Express Linux database" generation: 2 labels: app: peopleapi-template application: peopleapi createdBy: peopleapi-template namespace: peopleapi spec: replicas: 1 selector: name: peopleapidb strategy: activeDeadlineSeconds: 21600 recreateParams: timeoutSeconds: 600 resources: {} type: Recreate template: metadata: labels: name: "peopleapidb" spec: containers: - name: peopleapidb image: 'peopleapi/peopleapidb:latest' imagePullPolicy: IfNotPresent ports: - containerPort: 1433 protocol: TCP resources: limits: cpu: 500m memory: 750Mi requests: cpu: 250m memory: 250Mi terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumeMounts: - mountPath: /var/opt/mssql name: mssql-data dnsPolicy: ClusterFirst restartPolicy: Always schedulerName: default-scheduler securityContext: {} terminationGracePeriodSeconds: 30 volumes: - name: mssql-data persistentVolumeClaim: claimName: mssql-peopleapidb-data test: false triggers: - type: "ConfigChange" - type: "ImageChange" imageChangeParams: automatic: true containerNames: - "peopleapidb" from: kind: "ImageStreamTag" name: "peopleapidb:latest" - apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mssql-peopleapidb-data spec: accessModes: - ReadWriteOnce resources: requests: storage: ${MSSQL_VOLUME_CAPACITY} - apiVersion: v1 kind: ConfigMap metadata: name: jenkins-agent-base labels: role: jenkins-slave data: base: |- base 2147483647 0 jenkins jnlp docker.io/openshift/jenkins-slave-base-centos7 false false /tmp ${computer.jnlpmac} ${computer.name} false - apiVersion: v1 kind: ConfigMap metadata: name: jenkins-agent-dotnetcore21 labels: role: jenkins-slave data: dotnetcore21: |- dotnetcore21 2147483647 0 jenkins jnlp registry.access.redhat.com/dotnet/dotnet-21-jenkins-slave-rhel7 false false /tmp ${computer.jnlpmac} ${computer.name} false - apiVersion: v1 kind: ConfigMap metadata: name: jenkins-agent-sonar-dotnet labels: role: jenkins-slave data: dotnetcore21: |- sonar-dotnet 2147483647 0 jenkins jnlp 172.30.1.1:5000/openshift/jenkins-slave-sonarqube-dotnet false false /tmp ${computer.jnlpmac} ${computer.name} false parameters: - name: "CONSUMER_GIT_URL" displayName: "Source Repository URL" description: "The URL of the repository with your application source code" value: "https://github.com/Cingulara/peopleapi-jenkins-auto-deploy.git" required: true - name: "CONSUMER_GIT_BRANCH" displayName: "Source Repository Branch" description: "The branch within the git repository with your application source code" value: "develop" required: true - name: "PEOPLEAPI_CONN_STRING" displayName: "Connection String for PeopleAPI" description: "The database connection string for the peopleapidb database for this API" value: "server=peopleapidb; user id=peopleAPI; password=myP@ssw0rd; initial catalog=peopleAPI;" required: true - name: MSSQL_VOLUME_CAPACITY description: Volume space available for MSSQL displayName: MSSQL Volume Capacity required: true value: 1Gi