Skip to content
This repository has been archived by the owner on Mar 2, 2024. It is now read-only.

Commit

Permalink
add web ingress
Browse files Browse the repository at this point in the history
  • Loading branch information
asim committed Oct 27, 2022
1 parent 1110420 commit 77643bd
Show file tree
Hide file tree
Showing 4 changed files with 184 additions and 1 deletion.
1 change: 1 addition & 0 deletions cloud/Pulumi.dev.yaml
Expand Up @@ -24,6 +24,7 @@ config:
gcp:s3_secret_key:
secure: AAABAMIgmmPz1bmJMyIJghthrzj1jBTQr+B5hoMoDxtIiMOozGTm4zJuOJ5iw+e2wrAuJB7LeCeuEFDZ12EeIv16kQsRi3iI
m3o:api-hosts: api.m3o.dev
m3o:web-hosts: web.m3o.dev
m3o:ca-crt:
secure: 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
m3o:ca-key:
Expand Down
1 change: 1 addition & 0 deletions cloud/Pulumi.prod.yaml
Expand Up @@ -20,6 +20,7 @@ config:
m3o:analytics_db_password:
secure: AAABANWpgWi/6n7WoYUrYtCEFrcQiqe2UM0elqz2+kQMB1ZA89NawiKY2UCZSh2ZEJ9ttiP5S480JN59QzIhSg==
m3o:api-hosts: api.m3o.com
m3o:web-hosts: web.m3o.com
m3o:ca-crt:
secure: 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
m3o:ca-key:
Expand Down
138 changes: 138 additions & 0 deletions cloud/micro/index.ts
Expand Up @@ -777,6 +777,142 @@ export const proxyService = new k8s.core.v1.Service(
{ provider, dependsOn: proxyDeployment }
);

export const webDeployment = new k8s.apps.v1.Deployment(
"micro-web-deployment",
{
metadata: {
name: "micro-web",
namespace: "server",
labels: {
name: "web",
version: "latest",
micro: "server"
}
},
spec: {
replicas,
selector: {
matchLabels: {
name: "web",
version: "latest",
micro: "server"
}
},
template: {
metadata: {
labels: {
name: "web",
version: "latest",
micro: "server"
},
annotations: {
"prometheus.io/scrape": "true",
"prometheus.io/path": "/metrics",
"prometheus.io/port": "9000"
}
},
spec: {
containers: [
{
name: "micro",
env: [
{
name: "MICRO_API_ADDRESS",
value: "https://api.m3o.com"
},
{
name: "MICRO_AUTH_PUBLIC_KEY",
valueFrom: {
secretKeyRef: {
name: (jwtCert.metadata as ObjectMeta).name,
key: "tls.crt"
}
}
},
{
name: "MICRO_AUTH_PRIVATE_KEY",
valueFrom: {
secretKeyRef: {
name: (jwtCert.metadata as ObjectMeta).name,
key: "tls.key"
}
}
},
{
name: "MICRO_PROFILE",
value: "platform_client"
},
{
name: "MICRO_PROXY",
value: pulumi.interpolate`${networkService.metadata.name}.${networkService.metadata.namespace}:${networkService.spec.ports[0].port}`
},
{
name: "MICRO_API_REDIS_ADDRESS",
value: redis.redis.uri
},
{
name: "MICRO_API_REDIS_USER",
value: redis.redis.user
},
{
name: "MICRO_API_REDIS_PASSWORD",
value: redis.redis.password
}
],
args: ["web"],
image,
imagePullPolicy,
ports: [
{
name: "web-port",
containerPort: 8082
}
],
readinessProbe: {
tcpSocket: {
port: `web-port`
},
initialDelaySeconds: 5,
periodSeconds: 10
}
}
]
}
}
}
},
{ provider, dependsOn: [...server, jwtCert] }
);

export const apiService = new k8s.core.v1.Service(
"micro-web-service",
{
metadata: {
name: "micro-web",
namespace: "server",
labels: {
name: "web",
version: "latest",
micro: "server"
}
},
spec: {
ports: [
{
name: "http",
port: 8082,
targetPort: 8082
}
],
selector: {
name: "web",
version: "latest",
micro: "server"
}
}
},
{ provider, dependsOn: webDeployment }
);

export const jaegerDeployment = new k8s.apps.v1.Deployment(
"micro-jaeger-deployment",
Expand Down Expand Up @@ -1046,4 +1182,6 @@ export default [
apiDeployment,
proxyService,
proxyDeployment
webService,
webDeployment,
];
45 changes: 44 additions & 1 deletion cloud/nginx/index.ts
Expand Up @@ -238,6 +238,48 @@ export const httpIngress = new k8s.networking.v1beta1.Ingress(
{ provider, dependsOn: [externalChart, apiService] }
);

export const webIngress = new k8s.networking.v1beta1.Ingress(
"web-ingress",
{
metadata: {
name: "web-ingress",
namespace: "server",
annotations: {
"kubernetes.io/ingress.class": "external",
"cert-manager.io/cluster-issuer": (letsEncryptCerts.metadata as ObjectMeta)
.name!
}
},
spec: {
tls: [
{
hosts: cf.require("web-hosts").split(","),
secretName: "tls-web"
}
],
rules: cf
.require("web-hosts")
.split(",")
.map(host => ({
host,
http: {
paths: [
{
path: "/",
pathType: "Prefix",
backend: {
serviceName: "micro-web",
servicePort: 8082
}
}
]
}
}))
}
},
{ provider, dependsOn: [externalChart, webService] }
);

export const pr = new ocean.ProjectResources("pr-nginx", {
project: project.id,
resources: [externalIP.floatingIpUrn]
Expand All @@ -250,5 +292,6 @@ export default [
externalIP,
pvc,
grpcIngress,
httpIngress
httpIngress,
webIngress
];

0 comments on commit 77643bd

Please sign in to comment.