kube: add target:: convenience field to Service

Change-Id: If69116d93b6074136a36d98973e1aa997e2ebbef
Reviewed-on: https://gerrit.hackerspace.pl/c/hscloud/+/1802
Reviewed-by: q3k <q3k@hackerspace.pl>
changes/02/1802/3
radex 2023-11-24 11:09:46 +01:00
parent 6e0041d401
commit 8b8f3876a9
47 changed files with 79 additions and 72 deletions

View File

@ -84,7 +84,7 @@ local postgres = import '../../kube/postgres_v.libsonnet';
},
service: top.ns.Contain(kube.Service(cfg.name)) {
target_pod:: top.deployment.spec.template,
target:: top.deployment,
},
ingress: top.ns.Contain(kube.SimpleIngress(cfg.name)) {

View File

@ -162,7 +162,7 @@ local kube = import "../../../kube/hscloud.libsonnet";
svcWeb: ns.Contain(kube.Service("web")) {
target_pod: app.web.spec.template,
target:: app.web,
spec+: {
# hax
type: "LoadBalancer",

View File

@ -276,11 +276,11 @@ local redis = import "../../../kube/redis.libsonnet";
},
svcWeb: ns.Contain(kube.Service("web")) {
target_pod: app.web.spec.template,
target:: app.web,
},
svcStreaming: ns.Contain(kube.Service("streaming")) {
target_pod: app.streaming.spec.template,
target:: app.streaming,
},

View File

@ -116,7 +116,7 @@ local kube = import "../../../kube/kube.libsonnet";
svc: kube.Service("appservice-irc-%s" % [name]) {
metadata+: cfg.metadata,
target_pod:: bridge.deployment.spec.template,
target:: bridge.deployment,
},
},
}

View File

@ -147,7 +147,7 @@ local kube = import "../../../kube/kube.libsonnet";
svc: kube.Service("appservice-telegram-%s" % [name]) {
metadata+: cfg.metadata,
target_pod:: bridge.deployment.spec.template,
target:: bridge.deployment,
},
},
}

View File

@ -43,6 +43,6 @@ local kube = import "../../../kube/kube.libsonnet";
},
svc: app.ns.Contain(kube.Service("oauth2-cas-proxy")) {
target_pod:: app.deployment.spec.template,
target:: app.deployment,
},
}

View File

@ -130,7 +130,7 @@ local kube = import "../../../kube/kube.libsonnet";
},
svcTCP: app.ns.Contain(kube.Service("coturn-tcp")) {
target_pod:: app.deployment.spec.template,
target:: app.deployment,
metadata+: {
annotations+: {
"metallb.universe.tf/allow-shared-ip": "coturn",
@ -150,7 +150,7 @@ local kube = import "../../../kube/kube.libsonnet";
},
svcUDP: app.ns.Contain(kube.Service("coturn-udp")) {
target_pod:: app.deployment.spec.template,
target:: app.deployment,
metadata+: {
annotations+: {
"metallb.universe.tf/allow-shared-ip": "coturn",

View File

@ -161,7 +161,7 @@ local postgres = import "../../../kube/postgres.libsonnet";
casSvc: if cfg.cas.enable then kube.Service("oauth2-cas-proxy") {
metadata+: app.metadata("oauth2-cas-proxy"),
target_pod:: app.casDeployment.spec.template,
target:: app.casDeployment,
},
synapseDeployment: kube.Deployment("synapse") {
@ -219,7 +219,7 @@ local postgres = import "../../../kube/postgres.libsonnet";
synapseSvc: kube.Service("synapse") {
metadata+: app.metadata("synapse"),
target_pod:: app.synapseDeployment.spec.template,
target:: app.synapseDeployment,
},
riotConfig:: {
@ -344,7 +344,7 @@ local postgres = import "../../../kube/postgres.libsonnet";
riotSvc: kube.Service("riot-web") {
metadata+: app.metadata("riot-web"),
target_pod:: app.riotDeployment.spec.template,
target:: app.riotDeployment,
},
wellKnown: if cfg.wellKnown then {
@ -374,7 +374,7 @@ local postgres = import "../../../kube/postgres.libsonnet";
},
svc: kube.Service("wellknown") {
metadata+: app.metadata("wellknown"),
target_pod:: app.wellKnown.deployment.spec.template,
target:: app.wellKnown.deployment,
},
} else {},

View File

@ -115,7 +115,7 @@ local kube = import "../../../kube/kube.libsonnet";
// Run //app/matrix/media-repo-proxy, if needed. This rewrites Host headers
// from the homeserver's serving Host to the MXID hostname (which
// matrix-media-repo expects).
//
//
// Currently we only are able to run one proxy for one homeserver config -
// but we don't expect to have multiple homeservers per matrix-media-repo
// any time soon.
@ -158,10 +158,10 @@ local kube = import "../../../kube/kube.libsonnet";
} else {},
internalSvc: app.ns.Contain(kube.Service("media-repo-internal")) {
target_pod:: app.deployment.spec.template,
target:: app.deployment,
},
svc: if std.length(needProxying) > 0 then app.ns.Contain(kube.Service("media-repo")) {
target_pod:: app.proxies.deployment.spec.template,
target:: app.proxies.deployment,
} else app.internalSvc,
}

View File

@ -90,6 +90,6 @@ local kube = import "../../../kube/kube.libsonnet";
},
svc: app.ns.Contain(kube.Service("riot-web")) {
target_pod:: app.deployment.spec.template,
target:: app.deployment,
},
}

View File

@ -230,10 +230,10 @@ local kube = import "../../../kube/kube.libsonnet";
},
},
svc: app.ns.Contain(kube.Service("synapse")) {
target_pod:: app.main.deployment.spec.template,
target:: app.main.deployment,
},
replicationSvc: app.ns.Contain(kube.Service("synapse-replication-master")) {
target_pod:: app.main.deployment.spec.template,
target:: app.main.deployment,
spec+: {
ports: [
{ port: 9093, name: 'replication', targetPort: 9093 },
@ -262,7 +262,7 @@ local kube = import "../../../kube/kube.libsonnet";
},
},
svc: app.ns.Contain(kube.Service("synapse-generic")) {
target_pod:: app.genericWorker.deployment.spec.template,
target:: app.genericWorker.deployment,
},
# Following paths can be handled by generic workers.
@ -386,7 +386,7 @@ local kube = import "../../../kube/kube.libsonnet";
},
},
svc: app.ns.Contain(kube.Service("synapse-media")) {
target_pod:: app.mediaWorker.deployment.spec.template,
target:: app.mediaWorker.deployment,
},
},

View File

@ -36,6 +36,6 @@ local kube = import "../../../kube/kube.libsonnet";
},
},
svc: app.ns.Contain(kube.Service("wellknown")) {
target_pod:: app.deployment.spec.template,
target:: app.deployment,
},
}

View File

@ -66,7 +66,7 @@ local policies = import "../../kube/policies.libsonnet";
},
svc: oo.ns.Contain(kube.Service("documentserver")) {
target_pod:: oo.deploy.spec.template,
target:: oo.deploy,
},
ingress: oo.ns.Contain(kube.SimpleIngress("office")) {

View File

@ -94,11 +94,11 @@ local kube = import "../../../kube/kube.libsonnet";
["admin-password", cfg.icecast.authentication.adminPassword],
],
["hostname", cfg.icecast.hostname],
["listen-socket",
["listen-socket",
["port", std.toString(cfg.icecast.listenPort)],
],
["fileserve", "1"],
["paths",
["paths",
["webroot", "/usr/share/icecast/web"],
["adminroot", "/usr/share/icecast/admin"],
],
@ -172,7 +172,7 @@ local kube = import "../../../kube/kube.libsonnet";
},
svc: kube.Service(radio.makeName("icecast")) {
metadata+: radio.metadata,
target_pod:: radio.deployment.spec.template,
target:: radio.deployment,
spec+: {
ports: [
{ name: "client", port: cfg.port, targetPort: cfg.icecast.listenPort, protocol: "TCP" },

View File

@ -47,7 +47,7 @@ local kube = import '../../kube/hscloud.libsonnet';
},
service: top.ns.Contain(kube.Service(cfg.name)) {
target_pod:: top.deployment.spec.template,
target:: top.deployment,
},
ingress: top.ns.Contain(kube.SimpleIngress(cfg.name)) {

View File

@ -114,7 +114,7 @@ local kube = import "../../../kube/hscloud.libsonnet";
},
svc: kube.Service(ix.name("octorpki")) {
metadata+: ix.metadata("octorpki"),
target_pod:: ix.octorpki.deployment.spec.template,
target:: ix.octorpki.deployment,
spec+: {
ports: [
{ name: "client", port: 8080, targetPort: 8080, protocol: "TCP" },
@ -150,7 +150,7 @@ local kube = import "../../../kube/hscloud.libsonnet";
},
svc: kube.Service(ix.name(name)) {
metadata+: ix.metadata(name),
target_pod:: component.deployment.spec.template,
target:: component.deployment,
spec+: {
ports: [
{ name: "client", port: component.port, targetPort: component.port, protocol: "TCP" },

View File

@ -56,7 +56,7 @@ local kube = import '../../../kube/hscloud.libsonnet';
svc: kube.Service("frontend") {
metadata+: internet.metadata("frontend"),
target_pod:: internet.deployment.spec.template,
target:: internet.deployment,
},
ingress: kube.SimpleIngress("frontend") {

View File

@ -55,7 +55,7 @@ local kube = import '../../../kube/hscloud.libsonnet';
svc: kube.Service("public") {
metadata+: speedtest.metadata("public"),
target_pod:: speedtest.deployment.spec.template,
target:: speedtest.deployment,
},
ingress: kube.SimpleIngress("public") {

View File

@ -88,7 +88,7 @@ local prototext = import "../../../kube/prototext.libsonnet";
},
svc: ns.Contain(kube.Service("admitomatic")) {
target_pod:: env.daemonset.spec.template,
target:: env.daemonset,
},
webhook: kube.ValidatingWebhookConfiguration("admitomatic") {

View File

@ -142,7 +142,7 @@ local kube = import "../../../kube/kube.libsonnet";
services: {
certmanager: kube.Service("cert-manager") {
metadata+: env.metadata,
target_pod:: env.deployments.certmanager.spec.template,
target:: env.deployments.certmanager,
spec+: {
type: "ClusterIP",
ports: [
@ -152,7 +152,7 @@ local kube = import "../../../kube/kube.libsonnet";
},
webhook: kube.Service("cert-manager-webhook") {
metadata+: env.metadata,
target_pod:: env.deployments.webhook.spec.template,
target:: env.deployments.webhook,
spec+: {
type: "ClusterIP",
ports: [

View File

@ -26,11 +26,11 @@
# You are then ready to access the database via the public service from your application.
#
# PGCLIENTENCODING=utf8 psql -h q3kdb-public -p 26257 -U bialkov wykop
# Password for user bialkov:
# Password for user bialkov:
# psql (10.9 (Ubuntu 10.9-0ubuntu0.18.04.1), server 9.5.0)
# SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES128-GCM-SHA256, bits: 128, compression: off)
# Type "help" for help.
#
#
# wykop=>
@ -206,7 +206,7 @@ local policies = import "../../../kube/policies.libsonnet";
"prometheus.io/port": std.toString(cluster.cfg.portHttp),
},
},
target_pod:: server.deploy.spec.template,
target:: server.deploy,
spec+: {
ports: [
{ name: "grpc", port: cluster.cfg.portServe, targetPort: cluster.cfg.portServe },
@ -300,7 +300,7 @@ local policies = import "../../../kube/policies.libsonnet";
command: [
"/cockroach/cockroach", "start",
"--certs-dir", "/cockroach/cockroach-certs",
"--advertise-host", "%s.cluster.local" % server.service.host,
"--advertise-host", "%s.cluster.local" % server.service.host,
"--cache", "25%", "--max-sql-memory", "25%",
"--join", std.join(",", ["%s.cluster.local:%d" % [s.service.host, cluster.cfg.portServe] for s in cluster.servers if s.service.host != server.service.host]),
"--listen-addr=0.0.0.0:%d" % cluster.cfg.portServe,

View File

@ -189,7 +189,7 @@ local kube = import "../../../kube/kube.libsonnet";
metadata+: {
namespace: cfg.namespace,
},
target_pod: env.deployment.spec.template,
target:: env.deployment,
spec+: {
ports: [ { name: p.name, port: p.containerPort, protocol: p.protocol } for p in svc.target_pod.spec.containers[0].ports ],
clusterIP: cfg.clusterIP,

View File

@ -124,7 +124,7 @@ local kube = import "../../../kube/kube.libsonnet";
metadata+: {
namespace: cfg.namespace,
},
target_pod: env.deployment.spec.template,
target:: env.deployment,
},
api: kube._Object("apiregistration.k8s.io/v1beta1", "APIService", "v1beta1.metrics.k8s.io") {
spec+: {

View File

@ -224,7 +224,7 @@ local policies = import "../../../kube/policies.libsonnet";
service: kube.Service("ingress-nginx") {
metadata+: env.metadata,
target_pod:: env.deployment.spec.template,
target:: env.deployment,
spec+: {
type: "LoadBalancer",
ports: [
@ -237,7 +237,7 @@ local policies = import "../../../kube/policies.libsonnet";
serviceGitea: kube.Service("ingress-nginx-gitea") {
metadata+: env.metadata,
target_pod:: env.deployment.spec.template,
target:: env.deployment,
spec+: {
type: "LoadBalancer",
loadBalancerIP: "185.236.240.60",

View File

@ -76,7 +76,7 @@ local kube = import "../../../kube/kube.libsonnet";
svc: kube.Service("prodvider") {
metadata+: env.metadata("prodvider"),
target_pod:: env.deployment.spec.template,
target:: env.deployment,
spec+: {
type: "LoadBalancer",
ports: [

View File

@ -217,7 +217,7 @@ local kube = import "../../../kube/kube.libsonnet";
},
authService: kube.Service("auth") {
metadata+: env.metadata("auth"),
target_pod:: env.authDeployment.spec.template,
target:: env.authDeployment,
spec+: {
type: "ClusterIP",
ports: [
@ -267,7 +267,7 @@ local kube = import "../../../kube/kube.libsonnet";
},
registryService: kube.Service("docker-registry") {
metadata+: env.metadata("docker-registry"),
target_pod:: env.registryDeployment.spec.template,
target:: env.registryDeployment,
spec+: {
type: "ClusterIP",
ports: [

View File

@ -210,7 +210,7 @@ local kube = import "../../../kube/hscloud.libsonnet";
svc: kube.Service(gerrit.name("gerrit")) {
metadata+: gerrit.metadata("service"),
target_pod:: gerrit.deployment.spec.template,
target:: gerrit.deployment,
spec+: {
ports: [
{ name: "http", port: 80, targetPort: 8080, protocol: "TCP" },

View File

@ -127,7 +127,7 @@ local postgres = import "../../kube/postgres.libsonnet";
},
svc: app.ns.Contain(kube.Service("redmine")) {
target_pod:: app.deployment.spec.template,
target:: app.deployment,
},
ingress: app.ns.Contain(kube.SimpleIngress("redmine")) {
@ -157,7 +157,7 @@ local postgres = import "../../kube/postgres.libsonnet";
},
},
svc: app.ns.Contain(kube.Service("b")) {
target_pod:: app.b.deployment.spec.template,
target:: app.b.deployment,
},
ingress: app.ns.Contain(kube.SimpleIngress("b")) {
hosts:: cfg.b.domains,

View File

@ -167,7 +167,7 @@ local proxy = import "proxy.libsonnet";
"app.kubernetes.io/name": cfg.appName,
},
},
target_pod:: factorio.deployment.spec.template,
target:: factorio.deployment,
spec+: {
ports: [
{ name: "client", port: 34197, targetPort: 34197, protocol: "UDP" },

View File

@ -51,7 +51,7 @@ local kube = import "../../../kube/kube.libsonnet";
metadata+: {
namespace: "factorio",
},
target_pod:: proxy.deploy.spec.template,
target:: proxy.deploy,
spec+: {
ports: [
{ name: "client", port: 4200, targetPort: 4200, protocol: "TCP" },

View File

@ -33,7 +33,7 @@ local kube = import "../../kube/kube.libsonnet";
},
},
svc: ns.Contain(kube.Service(named("external"))) {
target_pod:: game.deployment.spec.template,
target:: game.deployment,
spec+: {
ports: kube.mapToNamedList({
zero: { port: cfg.port, targetPort: cfg.port, protocol: "UDP" },

View File

@ -47,7 +47,7 @@ local kube = import "../../kube/hscloud.libsonnet";
},
service: top.ns.Contain(kube.Service(cfg.name)) {
target_pod:: top.deployment.spec.template,
target:: top.deployment,
},
ingress: top.ns.Contain(kube.SimpleIngress(cfg.name)) {

View File

@ -40,7 +40,7 @@ local kube = import "../../../../kube/hscloud.libsonnet";
},
service: top.ns.Contain(kube.Service(cfg.name)) {
target_pod:: top.deployment.spec.template,
target:: top.deployment,
},
ingress: top.ns.Contain(kube.SimpleIngress(cfg.name)) {

View File

@ -52,7 +52,7 @@ local kube = import "../../kube/hscloud.libsonnet";
},
service: top.ns.Contain(kube.Service(cfg.name)) {
target_pod:: top.deployment.spec.template,
target:: top.deployment,
},
ingress: top.ns.Contain(kube.SimpleIngress(cfg.name)) {

View File

@ -57,7 +57,7 @@ local kube = import "../../kube/hscloud.libsonnet";
},
service: top.ns.Contain(kube.Service("oodviewer")) {
target_pod:: top.deploy.spec.template,
target:: top.deploy,
},
ingress: top.ns.Contain(kube.SimpleIngress("oodviewer")) {

View File

@ -162,7 +162,7 @@ local redis = import "../../kube/redis.libsonnet";
},
service: app.ns.Contain(kube.Service("paperless")) {
target_pod:: app.deploy.spec.template,
target:: app.deploy,
},
ingress: app.ns.Contain(kube.SimpleIngress("paperless")) {

View File

@ -42,7 +42,7 @@ local kube = import "../../kube/hscloud.libsonnet";
},
service: top.ns.Contain(kube.Service(cfg.name)) {
target_pod:: top.deployment.spec.template,
target:: top.deployment,
},
ingress: top.ns.Contain(kube.SimpleIngress(cfg.name)) {

View File

@ -37,6 +37,13 @@ kube {
metadata+: { annotations: {} },
},
// Add `target` field
Service(name): kube.Service(name) {
// Deployment, Pod, DaemonSet, etc. that this Service is targeting.
target:: error "service target must be defined",
target_pod:: kube.podRef(self.target),
},
CephObjectStoreUser(name): kube._Object("ceph.rook.io/v1", "CephObjectStoreUser", name) {
local user = self,
spec: error "spec must be defined",

View File

@ -125,7 +125,7 @@ local kube = import "kube.libsonnet";
volumes:: {},
containers:: {
main: cfg.container,
},
},
nodeSelector: null,
securityContext: {},
container:: error "container(s) must be set",
@ -202,7 +202,7 @@ local kube = import "kube.libsonnet";
svc: kube.Service(component.makeName("")) { // No suffix, name part of DNS entry.
metadata+: component.metadata,
target_pod:: component.deployment.spec.template,
target:: component.deployment,
spec+: {
ports: [
{
@ -222,7 +222,7 @@ local kube = import "kube.libsonnet";
pki: {
cert: kube.Certificate(component.makeName("-cert")) {
metadata+: component.metadata,
spec: {
secretName: component.makeName("-cert"),
duration: "35040h0m0s", // 4 years

View File

@ -171,7 +171,7 @@ local kube = import "kube.libsonnet";
svc: kube.Service(postgres.makeName("postgres")) {
metadata+: postgres.metadata,
target_pod:: postgres.deployment.spec.template,
target:: postgres.deployment,
spec+: {
ports: [
{ name: "client", port: 5432, targetPort: 5432, protocol: "TCP" },
@ -213,7 +213,7 @@ local kube = import "kube.libsonnet";
"app.kubernetes.io/component": "bouncer",
}
},
target_pod:: postgres.bouncer.deployment.spec.template,
target:: postgres.bouncer.deployment,
spec+: {
ports: [
{ name: "client", port: 5432, targetPort: 5432, protocol: "TCP" },

View File

@ -94,7 +94,7 @@ local kube = import "kube.libsonnet";
svc: kube.Service(postgres.makeName("postgres")) {
metadata+: postgres.metadata,
target_pod:: postgres.deployment.spec.template,
target:: postgres.deployment,
spec+: {
ports: [
{ name: "client", port: 5432, targetPort: 5432, protocol: "TCP" },
@ -136,7 +136,7 @@ local kube = import "kube.libsonnet";
"app.kubernetes.io/component": "bouncer",
}
},
target_pod:: postgres.bouncer.deployment.spec.template,
target:: postgres.bouncer.deployment,
spec+: {
ports: [
{ name: "client", port: 5432, targetPort: 5432, protocol: "TCP" },

View File

@ -87,7 +87,7 @@ local kube = import "kube.libsonnet";
},
svc: kube.Service(redis.makeName("redis")) {
metadata+: redis.metadata,
target_pod:: redis.deployment.spec.template,
target:: redis.deployment,
spec+: {
ports: [
{ name: "client", port: 6379, targetPort: 6379, protocol: "TCP" },

View File

@ -118,7 +118,7 @@ local kube = import "../../../kube/hscloud.libsonnet";
},
serviceAPI: ns.Contain(kube.Service("victoria-api")) {
target_pod: victoria.deploy.spec.template,
target:: victoria.deploy,
spec+: {
ports: [
{ name: "api", port: 8427, targetPort: 8427, protocol: "TCP" },
@ -242,7 +242,7 @@ local kube = import "../../../kube/hscloud.libsonnet";
},
service: ns.Contain(kube.Service("grafana-public")) {
target_pod: grafana.deploy.spec.template,
target:: grafana.deploy,
spec+: {
ports: [
{ name: "public", port: 3000, targetPort: 3000, protocol: "TCP" },

View File

@ -95,7 +95,7 @@ local kube = import "../../../kube/hscloud.libsonnet";
},
svc: app.ns.Contain(kube.Service("sso")) {
target_pod:: app.deployment.spec.template,
target:: app.deployment,
spec+: {
ports: [
{ name: "http", port: 5000, targetPort: 5000, protocol: "TCP" },

View File

@ -50,7 +50,7 @@ local kube = import "../../../kube/hscloud.libsonnet";
},
},
service: top.ns.Contain(kube.Service(cfg.name)) {
target_pod:: top.deployment.spec.template,
target:: top.deployment,
},
ingress: top.ns.Contain(kube.SimpleIngress(cfg.name)) {

View File

@ -35,7 +35,7 @@ local kube = import "../../../kube/hscloud.libsonnet";
},
service: top.ns.Contain(kube.Service(cfg.name)) {
target_pod:: top.deployment.spec.template,
target:: top.deployment,
},
ingress: top.ns.Contain(kube.SimpleIngress(cfg.name)) {

View File

@ -51,7 +51,7 @@ local kube = import "../../../kube/hscloud.libsonnet";
},
service: top.ns.Contain(kube.Service(cfg.name)) {
target_pod:: top.deployment.spec.template,
target:: top.deployment,
},
ingress: top.ns.Contain(kube.SimpleIngress(cfg.name)) {
@ -101,7 +101,7 @@ local kube = import "../../../kube/hscloud.libsonnet";
},
service: top.ns.Contain(kube.Service("wordpress-mysql")) {
target_pod:: mysql.deployment.spec.template,
target:: mysql.deployment,
},
},
}