Skip to content

Commit

Permalink
add athena-1.12.4-91db3cc61d25526ba7b1f5e8e2a3e775907dbbd6.tgz
Browse files Browse the repository at this point in the history
athena-1.12.4-91db3cc61d25526ba7b1f5e8e2a3e775907dbbd6.tgz-meta/README.md
athena-1.12.4-91db3cc61d25526ba7b1f5e8e2a3e775907dbbd6.tgz-meta/main.yaml
athena-1.12.4-91db3cc61d25526ba7b1f5e8e2a3e775907dbbd6.tgz-meta/values.schema.json
  • Loading branch information
catalogbot committed Jan 16, 2025
1 parent ded6d06 commit 866758c
Show file tree
Hide file tree
Showing 5 changed files with 358 additions and 1 deletion.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
[![CircleCI](https://circleci.com/gh/giantswarm/athena.svg?style=shield&circle-token=e86584296950c3be820856e802a37336c2c7d540)](https://circleci.com/gh/giantswarm/athena)
[![Docker Repository on Quay](https://quay.io/repository/giantswarm/athena/status?token=789fdfa0-2068-473d-9ab6-7bde4aaf46dc "Docker Repository on Quay")](https://quay.io/repository/giantswarm/athena)

# Athena

Athena is a service that knows some useful things about your cluster. Its purpose is to provide some non-sensitive data (e. g. the CA certificate of the Kubernetes API, the cluster identifier, the cloud provider) to public clients, so they could easily establish a connection with the Kubernetes API, and identify the cluster that they're talking to.

Athena is typically running in every Giant Swarm management cluster, but is also useful in workload clusters.

## Installing in a workload cluster

If [Dex](https://github.com/giantswarm/dex-app) is already configured in the workload cluster, Athena can be used to provide OIDC access information to [kubectl gs](https://github.com/giantswarm/kubectl-gs) for easy login via SSO.

The app is installed in workload clusters, via our [app platform](https://docs.giantswarm.io/app-platform/).

Other than the app itself, you will need to provide a `values.yaml` configuration.

The management cluster name is needed as minimal configuration.

```yaml
managementCluster:
name: test
```
It is also possible to override the api and issuer addresses as well as the cluster name and provider in case it is needed:
```yaml
managementCluster:
name: test
clusterID: example
provider:
kind: aws
kubernetes:
api:
address: https://api.test.example.io
oidc:
issuerAddress: https://dex.test.example.io
```
Access to athena can be restricted to certain CIDRs.
```yaml
security:
subnet:
customer:
public: x.x.x.x/x,x.x.x.x/x
private: x.x.x.x/x
restrictAccess:
gsAPI: true
```
## Examples
Athena provides a GraphQL service. You can find example queries in the [examples folder](https://github.com/giantswarm/athena/blob/main/examples). You can execute these in the GraphQL playground app (at the `/` route).

## How to add a new property?

Adding a new query property is relatively simple. We can illustrate this by adding a new `party` property.

1. Create a new schema for your new property

#### **`pkg/graph/graphql/party.graphql`**

```graphql
type Party {
name: String!
}
```

2. Extend the `Query` by adding your new property to it.

#### **`pkg/graph/graphql/party.graphql`**

```graphql
type Party {
name: String!
}
+
+ extend type Query {
+ party: Party!
+ }
```

3. Run the code generator

```nohighlight
$ go generate ./...
```

4. Add your resolver implementation (what to return when that parameter is queried).

#### **`pkg/graph/resolver/party.resolvers.go`**

```go
func (r *queryResolver) Party(ctx context.Context) (*model.Party, error) {
- panic(fmt.Errorf("not implemented"))
+ p := &model.Party{
+ Name: "something",
+ }
+
+ return p, nil
}
```

5. See it in action

You can run the app locally, and execute a query for this in the GraphQL playground app (at the `/` route).
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
annotations:
application.giantswarm.io/metadata: https://giantswarm.github.io/control-plane-test-catalog/athena-1.12.4-91db3cc61d25526ba7b1f5e8e2a3e775907dbbd6.tgz-meta/main.yaml
application.giantswarm.io/readme: https://giantswarm.github.io/control-plane-test-catalog/athena-1.12.4-91db3cc61d25526ba7b1f5e8e2a3e775907dbbd6.tgz-meta/README.md
application.giantswarm.io/team: shield
application.giantswarm.io/values-schema: https://giantswarm.github.io/control-plane-test-catalog/athena-1.12.4-91db3cc61d25526ba7b1f5e8e2a3e775907dbbd6.tgz-meta/values.schema.json
config.giantswarm.io/version: 1.x.x
chartApiVersion: v1
chartFile: athena-1.12.4-91db3cc61d25526ba7b1f5e8e2a3e775907dbbd6.tgz
dateCreated: '2025-01-16T14:48:01.729822'
digest: 261deb39208a8956159cfcf748bb972cbf6276847826f97f055a037ba7b6550b
home: https://github.com/giantswarm/athena
icon: https://s.giantswarm.io/app-icons/athena/1/light.svg
Original file line number Diff line number Diff line change
@@ -0,0 +1,223 @@
{
"$schema": "http://json-schema.org/schema#",
"type": "object",
"properties": {
"analytics": {
"type": "object",
"properties": {
"credentialsJSON": {
"type": "string"
},
"environmentType": {
"type": "string"
}
}
},
"baseDomain": {
"type": "string"
},
"clusterID": {
"type": "string"
},
"global": {
"type": "object",
"properties": {
"podSecurityStandards": {
"type": "object",
"properties": {
"enforced": {
"type": "boolean"
}
}
}
}
},
"graphql": {
"type": "object",
"properties": {
"enableIntrospection": {
"type": "boolean"
}
},
"required": [
"enableIntrospection"
]
},
"groupID": {
"type": "integer"
},
"image": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"repository": {
"type": "string"
},
"tag": {
"type": "string"
}
}
},
"ingress": {
"type": "object",
"properties": {
"externalDNS": {
"type": "boolean"
},
"ingressClassName": {
"type": "string"
},
"tls": {
"type": "object",
"properties": {
"clusterIssuer": {
"type": "string"
},
"crtPemB64": {
"type": "string"
},
"keyPemB64": {
"type": "string"
},
"letsencrypt": {
"type": "boolean"
}
}
}
}
},
"kubernetes": {
"type": "object",
"properties": {
"api": {
"type": "object",
"properties": {
"port": {
"type": "integer"
},
"address": {
"type": "string"
}
}
},
"caPem": {
"type": "string",
"deprecated": true
}
}
},
"managementCluster": {
"type": [
"object",
"string"
],
"properties": {
"name": {
"type": "string"
}
}
},
"name": {
"type": "string"
},
"namespace": {
"type": "string"
},
"oidc": {
"type": "object",
"properties": {
"issuerAddress": {
"type": "string"
}
}
},
"provider": {
"type": [
"object",
"string"
],
"properties": {
"kind": {
"type": "string"
}
}
},
"registry": {
"type": "object",
"properties": {
"domain": {
"type": "string"
}
}
},
"secret": {
"type": "object",
"properties": {
"firestoreServiceAccountKey": {
"type": "string"
}
}
},
"security": {
"type": "object",
"properties": {
"subnet": {
"type": "object",
"properties": {
"customer": {
"type": "object",
"properties": {
"private": {
"type": "string"
},
"public": {
"type": "string"
}
}
},
"restrictAccess": {
"type": "object",
"properties": {
"gsAPI": {
"type": "boolean"
}
}
},
"vpn": {
"type": "string"
}
}
}
}
},
"services": {
"type": "object",
"properties": {
"athena": {
"type": "object",
"properties": {
"address": {
"type": "string"
},
"host": {
"type": "string"
}
}
},
"happa": {
"type": "object",
"properties": {
"address": {
"type": "string"
}
}
}
}
},
"userID": {
"type": "integer"
}
}
}
20 changes: 19 additions & 1 deletion index.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2958,6 +2958,24 @@ entries:
urls:
- https://giantswarm.github.io/control-plane-test-catalog/athena-1.12.4-99a956552610f9407c2379bbff000d3a703c8ec6.tgz
version: 1.12.4-99a956552610f9407c2379bbff000d3a703c8ec6
- annotations:
application.giantswarm.io/metadata: https://giantswarm.github.io/control-plane-test-catalog/athena-1.12.4-91db3cc61d25526ba7b1f5e8e2a3e775907dbbd6.tgz-meta/main.yaml
application.giantswarm.io/readme: https://giantswarm.github.io/control-plane-test-catalog/athena-1.12.4-91db3cc61d25526ba7b1f5e8e2a3e775907dbbd6.tgz-meta/README.md
application.giantswarm.io/team: shield
application.giantswarm.io/values-schema: https://giantswarm.github.io/control-plane-test-catalog/athena-1.12.4-91db3cc61d25526ba7b1f5e8e2a3e775907dbbd6.tgz-meta/values.schema.json
config.giantswarm.io/version: 1.x.x
apiVersion: v1
appVersion: 1.12.4-91db3cc61d25526ba7b1f5e8e2a3e775907dbbd6
created: "2025-01-16T14:48:06.862286812Z"
description: A service providing non-sensitive information about your cluster
to clients
digest: 261deb39208a8956159cfcf748bb972cbf6276847826f97f055a037ba7b6550b
home: https://github.com/giantswarm/athena
icon: https://s.giantswarm.io/app-icons/athena/1/light.svg
name: athena
urls:
- https://giantswarm.github.io/control-plane-test-catalog/athena-1.12.4-91db3cc61d25526ba7b1f5e8e2a3e775907dbbd6.tgz
version: 1.12.4-91db3cc61d25526ba7b1f5e8e2a3e775907dbbd6
- annotations:
application.giantswarm.io/metadata: https://giantswarm.github.io/control-plane-test-catalog/athena-1.12.4-8f553ded3e7332430409ea19f9aaf194310c8f08.tgz-meta/main.yaml
application.giantswarm.io/readme: https://giantswarm.github.io/control-plane-test-catalog/athena-1.12.4-8f553ded3e7332430409ea19f9aaf194310c8f08.tgz-meta/README.md
Expand Down Expand Up @@ -41313,4 +41331,4 @@ entries:
urls:
- https://giantswarm.github.io/control-plane-test-catalog/vertical-pod-autoscaler-crd-3.1.1-05d778a740e0919e1ad9a8700db30f2169705a6d.tgz
version: 3.1.1-05d778a740e0919e1ad9a8700db30f2169705a6d
generated: "2025-01-16T14:45:58.283286202Z"
generated: "2025-01-16T14:48:06.861423885Z"

0 comments on commit 866758c

Please sign in to comment.