-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add athena-1.12.4-91db3cc61d25526ba7b1f5e8e2a3e775907dbbd6.tgz
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
1 parent
ded6d06
commit 866758c
Showing
5 changed files
with
358 additions
and
1 deletion.
There are no files selected for viewing
Binary file not shown.
104 changes: 104 additions & 0 deletions
104
athena-1.12.4-91db3cc61d25526ba7b1f5e8e2a3e775907dbbd6.tgz-meta/README.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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). |
12 changes: 12 additions & 0 deletions
12
athena-1.12.4-91db3cc61d25526ba7b1f5e8e2a3e775907dbbd6.tgz-meta/main.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
223 changes: 223 additions & 0 deletions
223
athena-1.12.4-91db3cc61d25526ba7b1f5e8e2a3e775907dbbd6.tgz-meta/values.schema.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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" | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters