mirror of https://github.com/abpframework/eventhub
10 changed files with 41 additions and 640 deletions
@ -1,67 +0,0 @@ |
|||
trigger: |
|||
- test |
|||
|
|||
|
|||
variables: |
|||
|
|||
# Container registry service connection established during pipeline creation |
|||
dockerRegistryServiceConnection: '855289e7-1034-4e42-90b4-38c072ecefcb' |
|||
imageRepository: 'voloeventhub' |
|||
containerRegistry: 'voloeventhub.azurecr.io' |
|||
dockerfilePath: '**/Dockerfile.EventHub.Web' |
|||
tag: '$(Build.BuildNumber)' |
|||
|
|||
|
|||
# Agent VM image name |
|||
vmImageName: 'ubuntu-latest' |
|||
|
|||
|
|||
stages: |
|||
- stage: Build |
|||
displayName: Build stage |
|||
jobs: |
|||
- job: Build |
|||
displayName: Build |
|||
pool: |
|||
vmImage: $(vmImageName) |
|||
steps: |
|||
- task: Docker@2 |
|||
displayName: Build and push an image to container registry |
|||
inputs: |
|||
command: buildAndPush |
|||
repository: $(imageRepository) |
|||
dockerfile: $(dockerfilePath) |
|||
containerRegistry: $(dockerRegistryServiceConnection) |
|||
tags: | |
|||
$(tag) |
|||
|
|||
- upload: manifests |
|||
artifact: manifests |
|||
|
|||
- stage: Deploy |
|||
displayName: Deploy stage |
|||
dependsOn: Build |
|||
|
|||
jobs: |
|||
- deployment: Deploy |
|||
displayName: Deploy-EventHub-Web |
|||
pool: |
|||
vmImage: $(vmImageName) |
|||
environment: 'volosofteventhub-3839.default' |
|||
strategy: |
|||
runOnce: |
|||
deploy: |
|||
steps: |
|||
|
|||
|
|||
- task: KubernetesManifest@0 |
|||
displayName: Deploy to Kubernetes cluster |
|||
inputs: |
|||
action: deploy |
|||
manifests: | |
|||
$(Pipeline.Workspace)/manifests/deployment.eventhub.web.yml |
|||
$(Pipeline.Workspace)/manifests/service.eventhub.web.yml |
|||
|
|||
containers: | |
|||
$(containerRegistry)/$(imageRepository):$(tag) |
|||
|
|||
@ -1,63 +0,0 @@ |
|||
trigger: |
|||
- test |
|||
|
|||
variables: |
|||
|
|||
dockerRegistryServiceConnection: 'b46a670b-6940-4de5-b6b1-b06f9dd1c849' |
|||
imageRepository: 'voloeventhubhttpapihost' |
|||
containerRegistry: 'voloeventhubhttpapihost.azurecr.io' |
|||
dockerfilePath: '**/Dockerfile.EventHub.HttpApi.Host' |
|||
tag: '$(Build.BuildNumber)' |
|||
|
|||
# Agent VM image name |
|||
vmImageName: 'ubuntu-latest' |
|||
|
|||
|
|||
stages: |
|||
- stage: Build |
|||
displayName: Build stage |
|||
jobs: |
|||
- job: Build |
|||
displayName: Build |
|||
pool: |
|||
vmImage: $(vmImageName) |
|||
steps: |
|||
- task: Docker@2 |
|||
displayName: Build and push an image to container registry |
|||
inputs: |
|||
command: buildAndPush |
|||
repository: $(imageRepository) |
|||
dockerfile: $(dockerfilePath) |
|||
containerRegistry: $(dockerRegistryServiceConnection) |
|||
tags: | |
|||
$(tag) |
|||
|
|||
- upload: manifests |
|||
artifact: manifests |
|||
|
|||
|
|||
- stage: Deploy |
|||
displayName: Deploy stage |
|||
dependsOn: Build |
|||
|
|||
jobs: |
|||
- deployment: Deploy |
|||
displayName: Deploy-HttpApi-Host |
|||
pool: |
|||
vmImage: $(vmImageName) |
|||
environment: 'volosofteventhub-6504.default' |
|||
strategy: |
|||
runOnce: |
|||
deploy: |
|||
steps: |
|||
|
|||
- task: KubernetesManifest@0 |
|||
displayName: Deploy to Kubernetes cluster |
|||
inputs: |
|||
action: deploy |
|||
manifests: | |
|||
$(Pipeline.Workspace)/manifests/deployment.eventhub.httpapi.host.yml |
|||
$(Pipeline.Workspace)/manifests/service.eventhub.httpapi.host.yml |
|||
containers: | |
|||
$(containerRegistry)/$(imageRepository):$(tag) |
|||
|
|||
@ -1,225 +0,0 @@ |
|||
--- |
|||
apiVersion: v1 |
|||
kind: ServiceAccount |
|||
metadata: |
|||
labels: |
|||
k8s-addon: cluster-autoscaler.addons.k8s.io |
|||
k8s-app: cluster-autoscaler |
|||
name: cluster-autoscaler |
|||
namespace: kube-system |
|||
--- |
|||
apiVersion: rbac.authorization.k8s.io/v1 |
|||
kind: ClusterRole |
|||
metadata: |
|||
name: cluster-autoscaler |
|||
labels: |
|||
k8s-addon: cluster-autoscaler.addons.k8s.io |
|||
k8s-app: cluster-autoscaler |
|||
rules: |
|||
- apiGroups: [""] |
|||
resources: ["events", "endpoints"] |
|||
verbs: ["create", "patch"] |
|||
- apiGroups: [""] |
|||
resources: ["pods/eviction"] |
|||
verbs: ["create"] |
|||
- apiGroups: [""] |
|||
resources: ["pods/status"] |
|||
verbs: ["update"] |
|||
- apiGroups: [""] |
|||
resources: ["endpoints"] |
|||
resourceNames: ["cluster-autoscaler"] |
|||
verbs: ["get", "update"] |
|||
- apiGroups: [""] |
|||
resources: ["nodes"] |
|||
verbs: ["watch", "list", "get", "update"] |
|||
- apiGroups: [""] |
|||
resources: |
|||
- "pods" |
|||
- "services" |
|||
- "replicationcontrollers" |
|||
- "persistentvolumeclaims" |
|||
- "persistentvolumes" |
|||
verbs: ["watch", "list", "get"] |
|||
- apiGroups: ["extensions"] |
|||
resources: ["replicasets", "daemonsets"] |
|||
verbs: ["watch", "list", "get"] |
|||
- apiGroups: ["policy"] |
|||
resources: ["poddisruptionbudgets"] |
|||
verbs: ["watch", "list"] |
|||
- apiGroups: ["apps"] |
|||
resources: ["statefulsets", "replicasets", "daemonsets"] |
|||
verbs: ["watch", "list", "get"] |
|||
- apiGroups: ["storage.k8s.io"] |
|||
resources: ["storageclasses", "csinodes"] |
|||
verbs: ["get", "list", "watch"] |
|||
- apiGroups: ["batch"] |
|||
resources: ["jobs", "cronjobs"] |
|||
verbs: ["watch", "list", "get"] |
|||
- apiGroups: ["coordination.k8s.io"] |
|||
resources: ["leases"] |
|||
verbs: ["create"] |
|||
- apiGroups: ["coordination.k8s.io"] |
|||
resourceNames: ["cluster-autoscaler"] |
|||
resources: ["leases"] |
|||
verbs: ["get", "update"] |
|||
|
|||
--- |
|||
apiVersion: rbac.authorization.k8s.io/v1 |
|||
kind: Role |
|||
metadata: |
|||
name: cluster-autoscaler |
|||
namespace: kube-system |
|||
labels: |
|||
k8s-addon: cluster-autoscaler.addons.k8s.io |
|||
k8s-app: cluster-autoscaler |
|||
rules: |
|||
- apiGroups: [""] |
|||
resources: ["configmaps"] |
|||
verbs: ["create","list","watch"] |
|||
- apiGroups: [""] |
|||
resources: ["configmaps"] |
|||
resourceNames: |
|||
- "cluster-autoscaler-status" |
|||
- "cluster-autoscaler-priority-expander" |
|||
verbs: ["delete", "get", "update", "watch"] |
|||
|
|||
--- |
|||
apiVersion: rbac.authorization.k8s.io/v1 |
|||
kind: ClusterRoleBinding |
|||
metadata: |
|||
name: cluster-autoscaler |
|||
labels: |
|||
k8s-addon: cluster-autoscaler.addons.k8s.io |
|||
k8s-app: cluster-autoscaler |
|||
roleRef: |
|||
apiGroup: rbac.authorization.k8s.io |
|||
kind: ClusterRole |
|||
name: cluster-autoscaler |
|||
subjects: |
|||
- kind: ServiceAccount |
|||
name: cluster-autoscaler |
|||
namespace: kube-system |
|||
|
|||
--- |
|||
apiVersion: rbac.authorization.k8s.io/v1 |
|||
kind: RoleBinding |
|||
metadata: |
|||
name: cluster-autoscaler |
|||
namespace: kube-system |
|||
labels: |
|||
k8s-addon: cluster-autoscaler.addons.k8s.io |
|||
k8s-app: cluster-autoscaler |
|||
roleRef: |
|||
apiGroup: rbac.authorization.k8s.io |
|||
kind: Role |
|||
name: cluster-autoscaler |
|||
subjects: |
|||
- kind: ServiceAccount |
|||
name: cluster-autoscaler |
|||
namespace: kube-system |
|||
|
|||
--- |
|||
apiVersion: v1 |
|||
data: |
|||
ResourceGroup: <base64-encoded-resource-group> |
|||
SubscriptionID: <base64-encode-subscription-id> |
|||
Deployment: <base64-encoded-azure-initial-deploy-name> |
|||
VMType: c3RhbmRhcmQ= |
|||
kind: Secret |
|||
metadata: |
|||
name: cluster-autoscaler-azure |
|||
namespace: kube-system |
|||
--- |
|||
apiVersion: apps/v1 |
|||
kind: Deployment |
|||
metadata: |
|||
labels: |
|||
app: cluster-autoscaler |
|||
name: cluster-autoscaler |
|||
namespace: kube-system |
|||
spec: |
|||
replicas: 1 |
|||
selector: |
|||
matchLabels: |
|||
app: cluster-autoscaler |
|||
template: |
|||
metadata: |
|||
labels: |
|||
app: cluster-autoscaler |
|||
spec: |
|||
hostNetwork: true |
|||
serviceAccountName: cluster-autoscaler |
|||
tolerations: |
|||
- effect: NoSchedule |
|||
operator: "Equal" |
|||
value: "true" |
|||
key: node-role.kubernetes.io/master |
|||
nodeSelector: |
|||
kubernetes.io/role: master |
|||
containers: |
|||
- command: |
|||
- ./cluster-autoscaler |
|||
- --v=3 |
|||
- --logtostderr=true |
|||
- --cloud-provider=azure |
|||
- --skip-nodes-with-local-storage=false |
|||
- --node-group-auto-discovery=label:cluster-autoscaler-enabled=true,cluster-autoscaler-name=<YOUR CLUSTER NAME> |
|||
env: |
|||
- name: ARM_SUBSCRIPTION_ID |
|||
valueFrom: |
|||
secretKeyRef: |
|||
key: SubscriptionID |
|||
name: cluster-autoscaler-azure |
|||
- name: ARM_RESOURCE_GROUP |
|||
valueFrom: |
|||
secretKeyRef: |
|||
key: ResourceGroup |
|||
name: cluster-autoscaler-azure |
|||
- name: ARM_USE_MANAGED_IDENTITY_EXTENSION |
|||
value: "true" |
|||
- name: ARM_VM_TYPE |
|||
valueFrom: |
|||
secretKeyRef: |
|||
key: VMType |
|||
name: cluster-autoscaler-azure |
|||
- name: ARM_DEPLOYMENT |
|||
valueFrom: |
|||
secretKeyRef: |
|||
key: Deployment |
|||
name: cluster-autoscaler-azure |
|||
image: k8s.gcr.io/cluster-autoscaler:{{ ca_version }} |
|||
imagePullPolicy: Always |
|||
name: cluster-autoscaler |
|||
resources: |
|||
limits: |
|||
cpu: 100m |
|||
memory: 300Mi |
|||
requests: |
|||
cpu: 100m |
|||
memory: 300Mi |
|||
volumeMounts: |
|||
- mountPath: /etc/ssl/certs/ca-certificates.crt |
|||
name: ssl-certs |
|||
readOnly: true |
|||
- mountPath: /var/lib/azure/ |
|||
name: deploy-parameters |
|||
readOnly: true |
|||
- mountPath: /var/lib/waagent/ |
|||
name: waagent |
|||
readOnly: true |
|||
dnsPolicy: ClusterFirst |
|||
restartPolicy: Always |
|||
volumes: |
|||
- hostPath: |
|||
path: /etc/ssl/certs/ca-certificates.crt |
|||
type: "" |
|||
name: ssl-certs |
|||
- name: deploy-parameters |
|||
secret: |
|||
secretName: cluster-autoscaler-azure-deploy-parameters |
|||
items: |
|||
- key: deploy-parameters |
|||
path: azuredeploy.parameters.json |
|||
- hostPath: |
|||
path: /var/lib/waagent/ |
|||
name: waagent |
|||
@ -1,212 +0,0 @@ |
|||
--- |
|||
apiVersion: v1 |
|||
kind: ServiceAccount |
|||
metadata: |
|||
labels: |
|||
k8s-addon: cluster-autoscaler.addons.k8s.io |
|||
k8s-app: cluster-autoscaler |
|||
name: cluster-autoscaler |
|||
namespace: kube-system |
|||
--- |
|||
apiVersion: rbac.authorization.k8s.io/v1 |
|||
kind: ClusterRole |
|||
metadata: |
|||
name: cluster-autoscaler |
|||
labels: |
|||
k8s-addon: cluster-autoscaler.addons.k8s.io |
|||
k8s-app: cluster-autoscaler |
|||
rules: |
|||
- apiGroups: [""] |
|||
resources: ["events", "endpoints"] |
|||
verbs: ["create", "patch"] |
|||
- apiGroups: [""] |
|||
resources: ["pods/eviction"] |
|||
verbs: ["create"] |
|||
- apiGroups: [""] |
|||
resources: ["pods/status"] |
|||
verbs: ["update"] |
|||
- apiGroups: [""] |
|||
resources: ["endpoints"] |
|||
resourceNames: ["cluster-autoscaler"] |
|||
verbs: ["get", "update"] |
|||
- apiGroups: [""] |
|||
resources: ["nodes"] |
|||
verbs: ["watch", "list", "get", "update"] |
|||
- apiGroups: [""] |
|||
resources: |
|||
- "pods" |
|||
- "services" |
|||
- "replicationcontrollers" |
|||
- "persistentvolumeclaims" |
|||
- "persistentvolumes" |
|||
verbs: ["watch", "list", "get"] |
|||
- apiGroups: ["extensions"] |
|||
resources: ["replicasets", "daemonsets"] |
|||
verbs: ["watch", "list", "get"] |
|||
- apiGroups: ["policy"] |
|||
resources: ["poddisruptionbudgets"] |
|||
verbs: ["watch", "list"] |
|||
- apiGroups: ["apps"] |
|||
resources: ["statefulsets", "replicasets", "daemonsets"] |
|||
verbs: ["watch", "list", "get"] |
|||
- apiGroups: ["storage.k8s.io"] |
|||
resources: ["storageclasses", "csinodes"] |
|||
verbs: ["get", "list", "watch"] |
|||
- apiGroups: ["batch"] |
|||
resources: ["jobs", "cronjobs"] |
|||
verbs: ["watch", "list", "get"] |
|||
- apiGroups: ["coordination.k8s.io"] |
|||
resources: ["leases"] |
|||
verbs: ["create"] |
|||
- apiGroups: ["coordination.k8s.io"] |
|||
resourceNames: ["cluster-autoscaler"] |
|||
resources: ["leases"] |
|||
verbs: ["get", "update"] |
|||
|
|||
--- |
|||
apiVersion: rbac.authorization.k8s.io/v1 |
|||
kind: Role |
|||
metadata: |
|||
name: cluster-autoscaler |
|||
namespace: kube-system |
|||
labels: |
|||
k8s-addon: cluster-autoscaler.addons.k8s.io |
|||
k8s-app: cluster-autoscaler |
|||
rules: |
|||
- apiGroups: [""] |
|||
resources: ["configmaps"] |
|||
verbs: ["create","list","watch"] |
|||
- apiGroups: [""] |
|||
resources: ["configmaps"] |
|||
resourceNames: |
|||
- "cluster-autoscaler-status" |
|||
- "cluster-autoscaler-priority-expander" |
|||
verbs: ["delete", "get", "update", "watch"] |
|||
|
|||
--- |
|||
apiVersion: rbac.authorization.k8s.io/v1 |
|||
kind: ClusterRoleBinding |
|||
metadata: |
|||
name: cluster-autoscaler |
|||
labels: |
|||
k8s-addon: cluster-autoscaler.addons.k8s.io |
|||
k8s-app: cluster-autoscaler |
|||
roleRef: |
|||
apiGroup: rbac.authorization.k8s.io |
|||
kind: ClusterRole |
|||
name: cluster-autoscaler |
|||
subjects: |
|||
- kind: ServiceAccount |
|||
name: cluster-autoscaler |
|||
namespace: kube-system |
|||
|
|||
--- |
|||
apiVersion: rbac.authorization.k8s.io/v1 |
|||
kind: RoleBinding |
|||
metadata: |
|||
name: cluster-autoscaler |
|||
namespace: kube-system |
|||
labels: |
|||
k8s-addon: cluster-autoscaler.addons.k8s.io |
|||
k8s-app: cluster-autoscaler |
|||
roleRef: |
|||
apiGroup: rbac.authorization.k8s.io |
|||
kind: Role |
|||
name: cluster-autoscaler |
|||
subjects: |
|||
- kind: ServiceAccount |
|||
name: cluster-autoscaler |
|||
namespace: kube-system |
|||
|
|||
--- |
|||
apiVersion: v1 |
|||
data: |
|||
ClientID: <base64-encoded-client-id> |
|||
ClientSecret: <base64-encoded-client-secret> |
|||
ResourceGroup: <base64-encoded-resource-group> |
|||
SubscriptionID: <base64-encode-subscription-id> |
|||
TenantID: <base64-encoded-tenant-id> |
|||
VMType: dm1zcw== |
|||
kind: Secret |
|||
metadata: |
|||
name: cluster-autoscaler-azure |
|||
namespace: kube-system |
|||
--- |
|||
apiVersion: apps/v1 |
|||
kind: Deployment |
|||
metadata: |
|||
labels: |
|||
app: cluster-autoscaler |
|||
name: cluster-autoscaler |
|||
namespace: kube-system |
|||
spec: |
|||
replicas: 1 |
|||
selector: |
|||
matchLabels: |
|||
app: cluster-autoscaler |
|||
template: |
|||
metadata: |
|||
labels: |
|||
app: cluster-autoscaler |
|||
spec: |
|||
serviceAccountName: cluster-autoscaler |
|||
containers: |
|||
- image: k8s.gcr.io/cluster-autoscaler:{{ ca_version }} |
|||
imagePullPolicy: Always |
|||
name: cluster-autoscaler |
|||
resources: |
|||
limits: |
|||
cpu: 100m |
|||
memory: 300Mi |
|||
requests: |
|||
cpu: 100m |
|||
memory: 300Mi |
|||
command: |
|||
- ./cluster-autoscaler |
|||
- --v=3 |
|||
- --logtostderr=true |
|||
- --cloud-provider=azure |
|||
- --skip-nodes-with-local-storage=false |
|||
- --nodes=1:10:vmss1 |
|||
- --nodes=1:10:vmss2 |
|||
env: |
|||
- name: ARM_SUBSCRIPTION_ID |
|||
valueFrom: |
|||
secretKeyRef: |
|||
key: SubscriptionID |
|||
name: cluster-autoscaler-azure |
|||
- name: ARM_RESOURCE_GROUP |
|||
valueFrom: |
|||
secretKeyRef: |
|||
key: ResourceGroup |
|||
name: cluster-autoscaler-azure |
|||
- name: ARM_TENANT_ID |
|||
valueFrom: |
|||
secretKeyRef: |
|||
key: TenantID |
|||
name: cluster-autoscaler-azure |
|||
- name: ARM_CLIENT_ID |
|||
valueFrom: |
|||
secretKeyRef: |
|||
key: ClientID |
|||
name: cluster-autoscaler-azure |
|||
- name: ARM_CLIENT_SECRET |
|||
valueFrom: |
|||
secretKeyRef: |
|||
key: ClientSecret |
|||
name: cluster-autoscaler-azure |
|||
- name: ARM_VM_TYPE |
|||
valueFrom: |
|||
secretKeyRef: |
|||
key: VMType |
|||
name: cluster-autoscaler-azure |
|||
volumeMounts: |
|||
- mountPath: /etc/ssl/certs/ca-certificates.crt |
|||
name: ssl-certs |
|||
readOnly: true |
|||
restartPolicy: Always |
|||
volumes: |
|||
- hostPath: |
|||
path: /etc/ssl/certs/ca-certificates.crt |
|||
type: "" |
|||
name: ssl-certs |
|||
@ -0,0 +1,18 @@ |
|||
apiVersion: networking.k8s.io/v1beta1 |
|||
kind: Ingress |
|||
metadata: |
|||
name: volosoft-eventhub-httpapi-host-ingress |
|||
namespace: default |
|||
annotations: |
|||
kubernetes.io/ingress.class: nginx |
|||
#nginx.ingress.kubernetes.io/ssl-redirect: "false" |
|||
|
|||
spec: |
|||
rules: |
|||
- host: web.eventhub.httpapihost.gokhansengun.com |
|||
http: |
|||
paths: |
|||
- backend: |
|||
serviceName: volosoft-eventhub-httpapi-host-service |
|||
servicePort: 80 |
|||
path: / |
|||
@ -0,0 +1,18 @@ |
|||
apiVersion: networking.k8s.io/v1beta1 |
|||
kind: Ingress |
|||
metadata: |
|||
name: volosoft-eventhub-identityserver-ingress |
|||
namespace: default |
|||
annotations: |
|||
kubernetes.io/ingress.class: nginx |
|||
#nginx.ingress.kubernetes.io/ssl-redirect: "false" |
|||
|
|||
spec: |
|||
rules: |
|||
- host: web.eventhub.identityserver.gokhansengun.com |
|||
http: |
|||
paths: |
|||
- backend: |
|||
serviceName: volosoft-eventhub-identityserver-service |
|||
servicePort: 80 |
|||
path: / |
|||
@ -1,62 +0,0 @@ |
|||
trigger: |
|||
- test |
|||
|
|||
variables: |
|||
|
|||
# Container registry service connection established during pipeline creation |
|||
dockerRegistryServiceConnection: '18b12bb9-87a3-4539-a769-7a1e371886cf' |
|||
imageRepository: 'voloeventhubidentityserver' |
|||
containerRegistry: 'voloeventhubidentityserver.azurecr.io' |
|||
dockerfilePath: '**/Dockerfile.EventHub.IdentityServer' |
|||
tag: '$(Build.BuildNumber)' |
|||
|
|||
# Agent VM image name |
|||
vmImageName: 'ubuntu-latest' |
|||
|
|||
|
|||
stages: |
|||
- stage: Build |
|||
displayName: Build stage |
|||
jobs: |
|||
- job: Build |
|||
displayName: Build |
|||
pool: |
|||
vmImage: $(vmImageName) |
|||
steps: |
|||
- task: Docker@2 |
|||
displayName: Build and push an image to container registry |
|||
inputs: |
|||
command: buildAndPush |
|||
repository: $(imageRepository) |
|||
dockerfile: $(dockerfilePath) |
|||
containerRegistry: $(dockerRegistryServiceConnection) |
|||
tags: | |
|||
$(tag) |
|||
|
|||
- publish: manifests |
|||
artifact: manifests |
|||
|
|||
- stage: Deploy |
|||
displayName: Deploy stage |
|||
dependsOn: Build |
|||
|
|||
jobs: |
|||
- deployment: Deploy |
|||
displayName: Deploy |
|||
pool: |
|||
vmImage: $(vmImageName) |
|||
environment: 'volosofteventhub-1359.default' |
|||
strategy: |
|||
runOnce: |
|||
deploy: |
|||
steps: |
|||
- task: KubernetesManifest@0 |
|||
displayName: Deploy to Kubernetes cluster |
|||
inputs: |
|||
action: deploy |
|||
manifests: | |
|||
$(Pipeline.Workspace)/manifests/deployment.eventhub.identityserver.yml |
|||
$(Pipeline.Workspace)/manifests/service.eventhub.identityserver.yml |
|||
containers: | |
|||
$(containerRegistry)/$(imageRepository):$(tag) |
|||
|
|||
Loading…
Reference in new issue